1. 程式人生 > >java 檔案實現 檔案下載 io流下載

java 檔案實現 檔案下載 io流下載

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();
	        }
	}