当前位置:   article > 正文

Spring MVC的高级功能——文件上传和下载(二)文件下载

Spring MVC的高级功能——文件上传和下载(二)文件下载

一、什么是文件下载

        文件下载就是将文件服务器中的文件传输到到本机上。进行文件下载时,为了不以客户端默认的方式处理返回的文件,可以在服务器端对所下载的文件进行相关的配置。配置的内容包括返回文件的形式、文件的打开方式、文件的下载方式和响应的状态码。其中,文件的打开方式可以通过响应头Content-Disposition的值来设定,文件的下载方式可以通过响应头Content-Type中设置的MIME类型来设定

二、使用ResponseEntity对象进行文件下载

使用ResponseEntity对象进行文件下载的示例代码如下所示。

  1. @RequestMapping("/download")
  2. public ResponseEntity<byte[]> fileDownload(HttpServletRequest request,String filename) throws Exception{
  3. String path = request.getServletContext().getRealPath("/upload/");// 下载文件所在路径
  4. File file = new File(path+File.separator+filename); // 创建文件对象
  5. HttpHeaders headers = new HttpHeaders(); // 设置消息头
  6. headers.setContentDispositionFormData(“attachment”, filename);// 打开文件
  7. headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); // 下载返回的文件数据
  8. return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),
  9. headers,HttpStatus.OK); // 使用ResponseEntity对象封装返回下载数据
  10. }

三、示例代码分析

        上面示例中,设置响应头信息中的MediaType代表的是Interner Media Type(即互联网媒体类型),也叫做MIME类型,MediaType.APPLICATION_OCTET_STREAM的值为application/octet-stream,即表示以二进制流的形式下载数据。HttpStatus类型代表的是Http协议中的状态,示例中的HttpStatus.OK表示200,即服务器已成功处理了请求。  

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/895581
推荐阅读
相关标签
  

闽ICP备14008679号