本文執行個體講述了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程式設計有所協助。