首页 > 代码库 > jsp 页面打开文件
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 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。