jsp 页面打开文件

 1 package tcweb.handler.report;
 2 
 3 import java.io.File;
 4 import java.io.FileInputStream;
 5 
 6 import javax.servlet.ServletContext;
 7 import javax.servlet.ServletOutputStream;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10 
11 import tcweb.Constants;
12 import tcweb.EventHandler;
13 import tcweb.Option;
14 import tcweb.PathMap;
15 import tcweb.WCException;
16 
17 public class OpenReportHandler implements EventHandler {
18 
19     public String process(ServletContext sc, HttpServletRequest request, HttpServletResponse response) throws WCException {
20 
21         String filepath = request.getParameter("filepath");
22         try {
23             filepath = new String(filepath.getBytes("ISO-8859-1"), "utf-8");
24             int fileTypePos = filepath.lastIndexOf(".");
25             String fileType = filepath.substring(fileTypePos+1, filepath.length());
26             String contentType ="application/octet-stream";
27             if(fileType.equalsIgnoreCase("txt")){
28                 //contentType = "text/xml";
29                 contentType = Constants.PAGE_CONTENT_TYPE_TEXT;
30                 //contentType = "text/html";
31             }else if(fileType.equalsIgnoreCase("xml")){
32                 contentType = Constants.PAGE_CONTENT_TYPE_XML;
33             }else if(fileType.equalsIgnoreCase("pdf")){
34                 contentType = "application/pdf";
35             }
36             else if(fileType.equalsIgnoreCase("xls")){
37                 contentType = "application/vnd.ms-excel";
38             }
39             else if(fileType.equalsIgnoreCase("xlsx")){
40                 contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";                
41             }
42 //            else if(fileType.equalsIgnoreCase("accdb") || fileType.equalsIgnoreCase("mdb")){
43 //                contentType = "application/msaccess";                
44 //            }else if(fileType.equalsIgnoreCase("zip")){
45 //                contentType = "application/zip";                
46 //            }
47             
48             filepath = PathMap.path2SystemSeparator(filepath);
49             
50             String fileP = PathMap.trimEndSeparator(Option.getStoragePath()) + filepath;
51             File resultFile = new File(fileP);
52             if (resultFile.exists()==true){
53                 filepath = fileP;
54             }else{
55                 filepath = PathMap.trimEndSeparator(PathMap.getRootTemporaryFolder())+filepath;
56             }
57             
58             FileInputStream is=new FileInputStream(filepath);
59               // response.reset(); 
60                //response.setHeader("Content-Disposition","inline; filename=Here is the Amazing PDF");
61                response.setCharacterEncoding("UTF-8");
62                
63                response.setContentType(contentType);  
64                //response.setHeader("Content-disposition","attachment;filename="+new String("aaa.pdf".getBytes("gb2312"),"iso8859-1"));
65                
66                //response.setHeader("Content-Disposition","attachment;filename="+filename); 
67                
68                ServletOutputStream sos = response.getOutputStream();      
69                byte[] buffer = new byte[1024];
70                int len=0;
71                while((len=is.read(buffer))>0){
72                  sos.write(buffer,0,len); 
73                }  
74                  is.close();
75                  sos.flush();      
76                  sos.close(); 
77 
78         } catch (Exception e1) {
79             e1.printStackTrace();
80         }
81         
82         return null;
83     }
84 
85 }

 

jsp 页面打开文件,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。