1. 程式人生 > >SpringMVC之檔案下載

SpringMVC之檔案下載

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