- 1@RequestMapping("download") 2@ResponseBody 3 public void download(HttpServletResponse response, Integer userId, String fileUrl) {
- 4
- try {
- 5 File file = new File(fileUrl);
- 6 String filename = file.getName();
- 7 // 以流的形式下载文件。
- 8 InputStream fis = new BufferedInputStream(new FileInputStream(fileUrl));
- 9 byte[] buffer = new byte[fis.available()];
- 10 fis.read(buffer);
- 11 fis.close();
- 12 // 清空response
- 13 response.reset();
- 14 15 response.setContentType("application/octet-stream;charset=UTF-8");
- 16 String fileName = new String(filename.getBytes("gb2312"), "iso8859-1");
- 17 response.setHeader("Content-disposition", "attachment;filename=" + fileName);
- 18 OutputStream ouputStream = response.getOutputStream();
- 19 ouputStream.write(buffer);
- 20 ouputStream.flush();
- 21 ouputStream.close();
- 22
- } catch(Exception e) {
- 23 e.printStackTrace();
- 24 logger.error("文件下载出现异常", e);
- 25
- }
- 26
- }
来源: