使用ResponseEntity实现文件下载

SpringBoot后端用ResponseEntity返回包含File的信息,VUE前端如何接收文件下载文件之路。文件上传后下载。如何在vue前端用axios实现文件下载? 我的文件上传: 一、后端 (1).属性设置一个存放目录: ps:我的目录有问题,用不起,他必须用“C:///”这样的绝对路径才能下载文件,对此,我到目前也没找到办法。有办法的请为我解答一下!! private final String fileBaseDirectory = “/src/main/resources/static/file/”; (2).上传代码: | public String upload(@RequestParam(“file”) MultipartFile file,@PathVar 阅读详情

使用ResponseEntity实现对jar内部和外部的数据文件实现下载。
ResponseEntity的泛型可以设置自定义返回值,也可以使用自带的返回值。



import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.InputStreamResource;
import org.springframework.core.io.Resource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

@RestController
@RequestMapping("/test")
public class TestController {

    // 设置返回值
    class MyResult<T>{
        private int code;
        private String msg;
        private T data;

        public int getCode() {
            return code;
        }

        public void setCode(int code) {
            this.code = code;
        }

        public String getMsg() {
            return msg;
        }

        public void setMsg(String msg) {
            this.msg = msg;
        }

        public T getData() {
            return data;
        }

        public void setData(T data) {
            this.data = data;
        }
    }

    @PostMapping("/download/out")
    public ResponseEntity<Object> downloadOut(){

        try {
            // Set the file name
            String fileName = "my.xlsx";

            // 工程的目录
            String prefixPath = System.getProperty("user.dir");
            // 文件路径
            String filePath = "/data/"+fileName;

            // 设置头信息
            HttpHeaders headers = new HttpHeaders();
            // 设置文件名称
            headers.setContentDispositionFormData("attachment", fileName);

            // 转化文件
            Path path = Paths.get(prefixPath + "/" + filePath);
            Resource resource = new InputStreamResource(Files.newInputStream(path));

            // 设置返回值
            return ResponseEntity.ok()
                    .headers(headers)
                    .contentLength(Files.size(path))
                    .contentType(MediaType.APPLICATION_OCTET_STREAM)
                    .body(resource);
        } catch (IOException e) {
            System.out.println("下载文件失败");

            MyResult<String> result = new MyResult<>();
            result.setCode(-1);
            result.setMsg("下载文件失败");

            // 返回实体值
            return ResponseEntity.ok(result);
        }
    }

    @PostMapping("/download/in")
    public ResponseEntity<Object> downloadIn(){

        System.out.println("test");
        try {
            // Set the file name
            String fileName = "my.xlsx";

            // 文件路径
            String filePath = "/data/"+fileName;

            // 设置头信息
            HttpHeaders headers = new HttpHeaders();
            // 设置文件名称
            headers.setContentDispositionFormData("attachment", fileName);

            System.out.println(filePath);

            // 获取资源jar包下的数据文件
            ClassPathResource classPathResource = new ClassPathResource(filePath);
            Resource resource = new InputStreamResource(classPathResource.getInputStream());

            // 设置返回值
            return ResponseEntity.ok()
                    .headers(headers)
                    .contentLength(classPathResource.contentLength())
                    .contentType(MediaType.APPLICATION_OCTET_STREAM)
                    .body(resource);
        } catch (IOException e) {
            System.out.println("下载文件失败");

            MyResult<String> result = new MyResult<>();
            result.setCode(-2);
            result.setMsg("下载文件失败");

            // 返回实体值
            return ResponseEntity.ok(result);
        }

    }

}
正则表达式全局匹配原理:lastIndex接力与常见坑解析 正则表达式是文本处理中基础而强大的工具,其匹配过程并非一次性完成,而是由引擎按指令逐步推进。当启用全局匹配时,引擎通过记录上一次匹配结束位置(如JavaScript中的lastIndex)实现连续扫描,这种“接力”机制决定了exec、matchAll等API的行为差异。掌握全局匹配原理,能有效避免lastIndex状态污染、零宽匹配产生空结果、带g标志的match丢失分组等常见工程陷阱。在日志解析、批量提取、字符串替换等场景中,正确理解全局匹配的推进逻辑,有助于写出稳定高效的代码。 阅读详情

相关推荐

【TouchDesigner】三维渲染

Cmera COMP Uniform Scale(按比例缩放):沿x,y,z三个轴等比例缩放相机(通常不建议改变相机大小)。 Constrain To(约束到):让相机附属到某个指定元件上,跟随指定元件运动。 Look At(朝向):让相机在移动过程中始终面对指定的元件。 Pah SOP(相机的路径):输入SOP元件名字,为相机指定移动路径。 Geometry Comp Geometry COMP中的参数与Camera COMP中的参数用法大部分都相似。特殊的是它的instacne页面的

wangpuqing1997的博客 5462

ResponseEntity的基本简介

1、ResponseEntity继承了HttpEntity,可以添加HttpStatus状态码的HttpEntity的扩展类。被用于RestTemplate和Controller层方法 2、ResponseEntity可以定义返回的HttpStatus(状态码)和HttpHeaders(消息头:请求头和响应头)HttpStatus的状态码有以下几种 3、ResponseEntity的优先级高于@...

胖橘爱吃小白粥 3万+

无人机基本组成部件

无人机基本组成部件

qq_37410522的博客 1万+

SpringBoot的 ResponseEntity类讲解(具体讲解返回给前端的一些事情)

是Spring框架中的一个类,用于封装HTTP响应的相关信息,包括状态码、响应头和响应体。它通常用于控制器方法中返回一个包含特定数据的HTTP响应。类的主要特点如下:可以自定义HTTP状态码:通过设置HttpStatus枚举值,可以指定不同的HTTP状态码,如200(OK)、404(Not Found)等。可以设置响应头信息:可以通过headers()方法设置响应头信息,例如设置内容类型(Content-Type)或缓存控制(Cache-Control)等。可以携带响应体数据:可以通过构造函数或。

nanshaws的博客 9306

保姆级教程:用sw_urdf_exporter插件将Solidworks机械臂模型转为ROS可用的URDF

本文提供了一份详细的保姆级教程,指导用户使用sw_urdf_exporter插件将Solidworks机械臂模型转换为ROS可用的URDF文件。从环境准备、插件配置到模型预处理和关键参数设置,再到ROS环境集成测试和性能优化,全面覆盖了机械臂URDF转换的全流程。特别适合机器人工程师和ROS开发者快速实现Solidworks模型到ROS环境的无缝迁移。

weixin_29300931的博客 401

1、硬件工程师笔面试真题汇总(2025版本)

答:按照使用习惯,电源指示灯用红色,信号指示灯用绿色这两种颜色的LED 灯技术最成熟,价格最便宜通孔是贯穿整个PCB 的过孔盲孔是从PCB 表层连接到内层的过孔埋孔是埋在PCB 内层的过孔。大多数PCB厂家的加工能力是这样的:大于等于8mil 的过孔可以做机械孔小于等于6mil 的过孔需要做激光孔对小于等于6mil 的微型孔,在钻孔空间不够时,允许一部分过打在PCB 焊盘上。

XU157303764的博客 2万+

文件上传和下载:使用ResponseEntity实现文件上传与下载的功能

使用ResponseEntity实现文件上传与下载的功能

qq_47450919的博客 3001

基于 YOLOv26 的陶瓷产品缺陷检测系统:智能视觉质检方案

本文提出了一种基于YOLOv26深度学习模型的陶瓷产品智能缺陷检测系统。该系统针对陶瓷生产中的裂纹、气泡、釉面缺陷等8类常见质量问题,采用YOLOv26目标检测算法实现高精度自动化检测。系统架构包含数据采集、预处理、YOLOv26检测和后处理四个模块,具有多类别分类、实时推理和强鲁棒性等技术优势。文章详细介绍了数据预处理与增强方法,并提供了Python代码实现示例。该方案可显著提升陶瓷产品质量检测效率,替代传统人工检测方式,为陶瓷制造业提供智能化质检解决方案。

一键难忘的博客 794

【SpringMVC】ResponseEntity实现文件上传和下载

具体讲到了SpringMVC对于上传文件和文件下载的部分,使用到了SpringMVC提供关于响应报文的ResponseEntity类型来实现

HXY19的博客 2111

27、自闭症儿童治疗与玩具设计研究

本研究探讨了自闭症儿童的治疗方法与玩具设计之间的关联,分析了游戏疗法、音乐疗法和职业疗法等在治疗中的应用,并介绍了多种针对自闭症儿童的治疗玩具案例。通过用户研究和多学科合作,提出了以Pro-Ability为核心的设计理念,开发了结合音乐疗法和精细运动训练的智能玩具套件。研究总结了当前成果与局限性,并展望了未来发展方向,旨在为自闭症儿童提供更有效的康复支持。

keras9composer的博客 213

SAP CBC 集成质量系统初始化接入实战指南

摘要 本文探讨了SAP S/4HANA Cloud Public Edition项目中质量系统的初始接入过程。质量系统并非开箱即用,而是需要经过SAP Central Business Configuration(CBC)的Scope and Organizational Structure阶段部署后才能具备完整功能。文章重点分析了几个关键环节:CBC里程碑确认的时机选择、Identity Authentication的初始管理员设置、Business Role Template的创建规范等。实施过程中需特

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1413

SpringMVC使用ResponseEntity实现下载文件

文章目录SpringMVC使用ResponseEntity实现下载文件 SpringMVC使用ResponseEntity实现下载文件 文件加载到内存中,作为响应体 设置好响应头,响应参数。 将以上参数赋值到ResponseEntity对象中,将ResponseEntity对象返回。 举例,一个方法搞定 @RequestMapping("/downloadFile2") public Res...

qq_32640013的博客 2320

【SpringBoot笔记44】SpringBoot多数据源配置(方式一:配置多个mapper扫描不同的包路径实现多数据源配置)

在SpringBoot应用开发中,一般情况下,都是只会配置一个数据源信息,之后整个工程都是对当前数据源进行增删改查的操作。但是,在实际开发里面,也有可能会遇到多数据源的情况,例如:当前工程中除了需要访问自己应用的数据库,还需要直接连接第三方系统的数据库进行业务处理,这种情况下,就需要进行多数据源的配置。SpringBoot考虑到了这一点,所以它是支持多数据源的配置的,下面介绍一下如何配置多数据源。

✅ Java 开发工程师 1118

springmvc通过ResponseEntity实现文件下载

在springmvc中实现文件下载一般都是借助HttpServletResponse的getOutputStream()方法实现的,除此之外还可以通过ResponseEntity实现: @RequestMapping(value = "/downloadxx.do", method = RequestMethod.GET) public ResponseEntity<InputS...

Coder-文小白的博客 1060

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

SpringMVC使用ResponseEntity实现文件下载

上一篇写了文件上传,文件下载的配置过程同文件上传,有需要的请http://blog.youkuaiyun.com/c______________/article/details/77512017 本文主要通过ResponseEntity//下载练习 @RequestMapping(value="/testDownload") public ResponseEntity<byte[]> tes

Mr.Steven 专注于Java 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

spring 框架ResponseEntity实现文件下载

后台代码。 @RequestMapping("downLoad") public ResponseEntity<byte[]> downloadPromisePdf() { String fileName = "企业诚信守法承诺书.pdf"; try { byte[] pdf = **;//byte文件 String dfileName = new String(fileName.getBytes("gb2312"), "iso8859-1"); HttpHea.

王威振的博客 1443

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ResponseEntity实现文件下载

需求: 点击页面上的超链接,然后下载服务器端的文件: ResponseEntity需要传入3个参数,分别是:请求体、请求头和状态码 具体的代码如下: @RequestMapping("/testResponseEntity") public ResponseEntity testResponseEntity(HttpSession session) throws IOExce

记忆碎片 2万+

SpringMVC 使用ResponseEntity实现文件下载

下载文件: (1)获取要下载的文件名,注意编码; (2)在HttpHeaders中设置以下载方式打开,设置MIME类型; (3)用FileUtils.readFileToByteArray()读取文件数据;用ResponseEntity构建返回对象 /** * Create a new {@code HttpEntity} with the given body, headers,...

分享我的点点滴滴,在成长路上与你同行! 9029

SpringMVC学习之路——ResponseEntity实现文件下载和上传

什么是ResponseEntity,具体的应用包括文件上传。springMVC如何实现文件上传和下载。

qq_32792547的博客 2126

SpringMVC通过ResponseEntity实现文件下载

SpringMVC通过ResponseEntity实现文件下载

CDConlyred的博客 1897

使用ResponseEntity实现从服务器下载和向服务器上传文件功能

使用ResponseEntity实现从服务器下载和向服务器上传文件功能 SpringMVC中使用ResponseEntity实现向服务器上传文件功能 首先需要添加依赖 然后需要在SpringMVC配置文件中配置文件上传解析器,将上传的文件封装为MultipartFile对象

huing的博客 2384

spring boot 用ResponseEntity实现下载文件(解决前后端分离跨域问题)

前言 最近项目集成spring cloud了,所有接口都由网关转发,刚开始写了一个下载文件接口是直接将文件写到OutputStream的,但这样做后就会导致网关截拦器取不到用户信息(网关目前是单机部署,用户信息由security框架写到内存中的),最后用org.springframework.http.ResponseEntity实现了文件下载。 1、OutputStream @ApiOpera...

lh87270202的博客 3万+

(11)在SpringMVC中文件上传解析器的配置,使用MultipartFile实现文件的上传,ResponseEntity对象实现文件下载

HttpMessageConverter是报文信息转换器,可以将请求报文转换为Java对象(RequestEntity), 或将Java对象(ResponseEntity)转换为响应报文。

欢迎阅读我的博客 1140

springboot 使用ResponseEntity实现文件流下载

@GetMapping(value = "/api/file/{id}", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) public ResponseEntity<StreamingResponseBody> download( @PathVariable(name = "id") String id ) { ... return ResponseEntity.ok() .header(HttpHeade

路过君的博客 4985

SpringMVC使用ResponseEntity实现文件下载,及图片base64的字节数组上传于下载

本文主要通过ResponseEntity<byte[]>实现文件下 该类实现响应头、文件数据(以字节存储)、状态封装在一起交给浏览器处理以实现浏览器的文件下载。 ResponseEntity参数解释:ResponseEntity(T body, MultiValueMap<String, String> headers, HttpStatus statusCode...

weixin_30544657的博客 1275

ResponseEntity实现多媒体文件下载或返回

问题: 在开发过程中遇见一个问题,返回图片。通过搜集信息得出,可以使用ResponseEntity来实现返回图片或下载文件等操作,且优雅,不用直接操作HttpsServletResponse。 解决 代码如下: @CrossOrigin @GetMapping("/captcha") public ResponseEntity<byte[]> captcha() thr...

CtrlTab+的博客 2447
上一篇: Python使用SQLAlchemy
下一篇: ChatGLM3-6B安装
MasonYyp
博客等级 码龄9年 301粉丝 297原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值