本文實例講述了JSP實現從不同服務器上下載文件的方法。分享給大家供大家參考,具體如下:
最近在項目當中遇到模板下載的問題:當服務器為Tomcat的時候文件可以正常下載,但是當放到線上(WebLogic服務器)下載的模板為空,現記錄下解決辦法。
public void importSuccess() throws Exception { try { HttpServletResponse response = Struts2Utils.getResponse(); // 重置響應 response.reset(); // 設置響應頭為二進制流 response.setContentType("application/x-msdownload;charset=utf-8"); response.setContentType("APPLICATION/OCTET-STREAM "); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment; filename=ComplaintsImportModel.xls"); String path = this.getClass().getClassLoader().getResource("/")//這裡才是問題的關鍵,WebLogic服務器要在讀取添加一個"/" .getPath(); path = path.substring(1, path.length()); String name = File.separator + path + "ComplaintsImportModel.xls"; logger.info("**********************************" + name + "*******************************"); InputStream is = new FileInputStream(name); HSSFWorkbook wb = new HSSFWorkbook(is); // 得到 文件流 OutputStream out = response.getOutputStream(); wb.write(out); is.close(); out.flush(); out.close(); } catch (Exception e) { logger.error("下載導出模版失敗", e); } }
留著以後備用
希望本文所述對大家jsp程序設計有所幫助。