一、java代码
@RequestMapping(value = "/file/ajax/file_download")
public ResponseEntity<byte[]> transportFileDownload(HttpServletRequest req,
Integer id) throws IOException {
UploadFile uf = uploadFileService.get(id);
String uploadDir = req.getSession().getServletContext().getRealPath("/")+ Constants.FILE_UPLOAD_PATH;
String filePath = uploadDir + uf.getFileUrl();
File file = new File(filePath);
HttpHeaders headers = new HttpHeaders();
String fileName = new String(uf.getFileName().getBytes("UTF-8"),"iso-8859-1");// 为了解决中文名称乱码问题
headers.setContentDispositionFormData("attachment", fileName);
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
}
二、前台调用
<a href="${ctx}/file/ajax/file_download?id=${id}" >