时间:2021-05-20
使用springmvc实现文件下载有两种方式,都需要设置response的Content-Disposition为attachment;filename=test2.png
第一种可以直接向response的输出流中写入对应的文件流
第二种可以使用 ResponseEntity<byte[]>来向前端返回文件
一、使用response
@RestController@RequestMapping("/download")public class DownloadController { @RequestMapping("/d1") public ResultVo<String> downloadFile(HttpServletResponse response){ String fileName="test.png"; try { //获取页面输出流 ServletOutputStream outputStream = response.getOutputStream(); //读取文件 byte[] bytes = FileUtils.readFileToByteArray(new File("D:\\my-study\\test2.png")); //向输出流写文件 //写之前设置响应流以附件的形式打开返回值,这样可以保证前边打开文件出错时异常可以返回给前台 response.setHeader("Content-Disposition","attachment;filename="+fileName); outputStream.write(bytes); outputStream.flush(); outputStream.close(); return ResultVoUtil.success("success"); } catch (IOException e) { return ResultVoUtil.error(e); } }}推荐使用这种方式,这种方式可以以json形式给前台返回提示信息。
二、使用ResponseEntity
@Controller@RequestMapping("/download2")public class DownloadController2 { private final static Logger logger= LoggerFactory.getLogger(CategoryDataController.class); @GetMapping("/d2") public ResponseEntity<byte[]> download2(){ //获取文件对象 try { byte[] bytes = FileUtils.readFileToByteArray(new File("D:\\my-study\\bill-admin\\test2.png")); HttpHeaders headers=new HttpHeaders(); headers.set("Content-Disposition","attachment;filename=test2.png"); ResponseEntity<byte[]> entity=new ResponseEntity<>(bytes,headers,HttpStatus.OK); return entity; } catch (IOException e) { logger.error("下载出错:",e); return null; } }}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了springmvc实现文件上传与下载功能的具体代码,供大家参考,具体内容如下文件上传在pom.xml中引入springmvc以及common
Ajax文件下载利用FormData对象和SpringMVC配合可以实现Ajax文件上载功能:步骤1.导入组件并准备静态脚本commons-fileupload
SpringMVC上传文件的三种实现方式,直接上代码吧,大伙一看便知前台:
springMVC实现多文件上传的方式有两种,一种是我们经常使用的以字节流的方式进行文件上传,另外一种是使用springMVC包装好的解析器进行上传。这两种方式
SpringMVC的文件下载实例详解读取文件要下载文件,首先是将文件内容读取进来,使用字节数组存储起来,这里使用spring里面的工具类实现importorg.