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 }