SpringMVC之檔案下載
阿新 • • 發佈:2019-02-01
Controller中的方法
//檔案下載 @RequestMapping("/upload") public String uploadFile(@RequestParam("url") String url, HttpServletRequest request, HttpServletResponse response) { if (url != null) { String realPath = request.getSession().getServletContext().getRealPath("/upload"); File file = new File(realPath,url); if (file.exists()) { response.setContentType("application/force-download");// 設定強制下載不開啟 String fileName = url.substring(6); response.addHeader("Content-Disposition", "attachment;fileName=" + fileName);// 設定檔名 byte[] buffer = new byte[1024]; FileInputStream fis = null; BufferedInputStream bis = null;try { fis = new FileInputStream(file); bis = new BufferedInputStream(fis); OutputStream os = response.getOutputStream(); int i = bis.read(buffer); while (i != -1) { os.write(buffer, 0, i); i = bis.read(buffer); } } catch(Exception e) { e.printStackTrace(); } finally { if (bis != null) { try { bis.close(); } catch (IOException e) { e.printStackTrace(); } } if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } } } return null; }