@RequestMapping(value="/download")
public ResponseEntity<byte[]> download(HttpServletRequest request,
@RequestParam("filename") String filename,
Model model)throws Exception {
//服务器中下载文件的路径
String path = request.getServletContext().getRealPath("/resources/img/");
//文件的完整路径。file.separator 是路径分隔符,因为linux下的\和windows下的/不一样
File file = new File(path + File.separator + filename);
HttpHeaders headers = new HttpHeaders();
//下载显示的文件名,解决中文名称乱码问题
String downloadFielName = new String(filename.getBytes("UTF-8"),"iso-8859-1");
//通知浏览器以attachment(下载方式)打开图片
headers.setContentDispositionFormData("attachment", downloadFielName);
//application/octet-stream : 二进制流数据(最常见的文件下载)。
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
//通过fileutils的工具输入输出下载的文件
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),
headers, HttpStatus.CREATED);
}
springMVC实现文件下载
最新推荐文章于 2023-03-28 23:14:47 发布
本文介绍了一种使用SpringMVC框架实现文件下载的方法。通过@RequestMapping注解映射下载请求,利用HttpServletRequest获取服务器上的文件路径,并设置响应头来指定文件以下载方式打开。最后通过FileUtils工具将文件转化为字节数组返回给客户端。
8224

被折叠的 条评论
为什么被折叠?



