赞
踩
文件下载就是将文件服务器中的文件传输到到本机上。进行文件下载时,为了不以客户端默认的方式处理返回的文件,可以在服务器端对所下载的文件进行相关的配置。配置的内容包括返回文件的形式、文件的打开方式、文件的下载方式和响应的状态码。其中,文件的打开方式可以通过响应头Content-Disposition的值来设定,文件的下载方式可以通过响应头Content-Type中设置的MIME类型来设定
使用ResponseEntity对象进行文件下载的示例代码如下所示。
- @RequestMapping("/download")
- public ResponseEntity<byte[]> fileDownload(HttpServletRequest request,String filename) throws Exception{
- String path = request.getServletContext().getRealPath("/upload/");// 下载文件所在路径
- File file = new File(path+File.separator+filename); // 创建文件对象
- HttpHeaders headers = new HttpHeaders(); // 设置消息头
- headers.setContentDispositionFormData(“attachment”, filename);// 打开文件
- headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); // 下载返回的文件数据
- return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),
- headers,HttpStatus.OK); // 使用ResponseEntity对象封装返回下载数据
- }
上面示例中,设置响应头信息中的MediaType代表的是Interner Media Type(即互联网媒体类型),也叫做MIME类型,MediaType.APPLICATION_OCTET_STREAM的值为application/octet-stream,即表示以二进制流的形式下载数据。HttpStatus类型代表的是Http协议中的状态,示例中的HttpStatus.OK表示200,即服务器已成功处理了请求。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。