Springboot文件下载

以Springboot的方式文件下载,有如下两个示例:

方式一

@RequestMapping(value = {"/dl"},  method = {RequestMethod.GET})
public ResponseEntity<ByteArrayResource> downloadFile1() throws IOException {   
    Path path = Paths.get("C:/文件.xlsx");
    byte[] data = Files.readAllBytes(path);
    ByteArrayResource resource = new ByteArrayResource(data);
    
    return ResponseEntity.ok()
                .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode(path.getFileName().toString(), "UTF-8"))
                .contentType(MediaType.APPLICATION_OCTET_STREAM).contentLength(data.length)
                .body(resource);
}

方式二

@RequestMapping(value = {"/dl"}, method = {RequestMethod.GET})
public ResponseEntity<InputStreamResource> downloadFile1() throws IOException {

    File file = new File("C:/文件.xlsx");
    InputStreamResource resource = new InputStreamResource(new FileInputStream(file));
    
    return ResponseEntity.ok()
           .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode(file.getName(), "UTF-8"))
           .contentType(MediaType.APPLICATION_OCTET_STREAM).contentLength(file.length())
           .body(resource);
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 普通下载功能的实现 支持分片下载功能的实现 这里是因为测试中ios safari 浏览器无法正常打开播放视频文件,...
    _年少阅读 5,485评论 1 5
  • 1、浏览器文件下载,我是下载本地服务器的。 2、这里只是一个工具类,前端穿过来即可。 response.addHe...
    王德权阅读 2,122评论 0 0
  • 我曾经见过很多计划做定投的投资者,他们一开始的计划是3年左右。比如给自己3年后攒一笔出国旅游的基金;给孩子攒一笔上...
    马硕_磕基阅读 29,534评论 0 2
  • 早上爬起来去喝了胡辣汤,然后到曲江去开实验室安全的会。下午上了两节课,全摸了,不过SVM接着看了看核函数。晚上回来...
    AJI米阅读 122评论 0 0
  • 加入天使6班整整一个月了,从偶然接触叶老师的时间管理课程,一路摸爬滚打到现在,感悟颇多,收获满满,同时需要反...
    2组13号石志霞阅读 502评论 1 2