Spring Boot 接口返回文件流

为什么浏览器中有些文件点击后是预览,有些是下载:https://www.cnblogs.com/vipsoft/p/18267174

SpringBoot 接口输出文件流 & Vue 下载文件流,获取 Header 中的文件名 https://www.cnblogs.com/vipsoft/p/16662762.html

复制代码
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource; 
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ContentDisposition;


@RequestMapping("/download")
public ResponseEntity<Resource> download(HttpServletRequest request, @RequestBody QueryBHDownLoadFileVo param) {
    String path = "D:\\VipSoft.xlsx";
    String contentDisposition = ContentDisposition
            .builder("attachment")
            .filename(path)
            .build().toString();

    File file = new File(path);
    if (file.exists()) {
        return ResponseEntity.ok()
                .header(HttpHeaders.CONTENT_DISPOSITION, contentDisposition)
                .contentType(MediaType.APPLICATION_OCTET_STREAM)
                .body(new FileSystemResource(path));
    } else {
        return ResponseEntity.badRequest()
                .header(HttpHeaders.CONTENT_DISPOSITION, contentDisposition + " Not Found")
                .contentType(MediaType.APPLICATION_OCTET_STREAM)
                .body(null);
    }

}
复制代码

 

posted @   VipSoft  阅读(4297)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
历史上的今天:
2021-05-27 Filebeat的安装和使用(Linux)
2020-05-27 Sublime Ctrl+B 编译输出乱码
点击右上角即可分享
微信分享提示