java 檔案實現 檔案下載 io流下載
阿新 • • 發佈:2019-01-02
public void saveFile(){ //檔案地址 try { HttpServletResponse response = ServletActionContext.getResponse(); data = data.substring(data.lastIndexOf("LovePatPrint")+12, data.length()); String path = ServletActionContext.getServletContext().getRealPath("")+data; // path是指欲下載的檔案的路徑。 File file = new File(path); // 取得檔名。 String filename = file.getName(); // 取得檔案的字尾名。 String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase(); // 以流的形式下載檔案。 InputStream fis = new BufferedInputStream(new FileInputStream(path)); byte[] buffer = new byte[fis.available()]; fis.read(buffer); fis.close(); // 清空response response.reset(); // 設定response的Header response.addHeader("Content-Disposition", "attachment;filename=" +filename); response.setContentType("application/octet-stream"); response.addHeader("Content-Length", "" + file.length()); OutputStream os = response.getOutputStream(); os.write(buffer); os.flush(); os.close(); } catch (IOException ex) { ex.printStackTrace(); } }