SpringBoot中实现文件的下载--下载指定路径下的文件

SpringBoot 实现文件上传到本地目录 并返回可访问的文件地址.rar SpringBoot 实现文件上传到本地目录 并返回可访问的文件地址 立即下载

代码参考如下:
一、接收页面下载的请求(后台Controller方法)

	/**
	 * 	文件下载
	 * @param response
	 * @param fId
	 * @return
	 */
	@RequestMapping("/down")
	@CrossOrigin(origins = "*", methods = {RequestMethod.GET, RequestMethod.POST})
    public String down(HttpServletResponse response,String fId) {
        try {
        	//根据文件id查询文件路径
        	FileInfo fileInfo=fileService.getFileVersion(fId);
			//根据文件路径下载文件信息
        	UploadUtil.down(response, fileInfo.getfPath());
			
			return "下载成功";
        } catch (IOException e) {
        	e.printStackTrace();
        }
        return "下载失败";
    }

二、代码中下载的工具类方法

/**
     * 下载
     * 由于HTTP头部的默认编码为ISO-8859-1而我们上传文件于下载文件过程中,提取到的文件名都要通过HTTP头部。
     *所以我们需要在上传的时候对提取到的文件名进行转码为UTF-8,然后在下载时我们也要进行反向转码为ISO-8859-1.
     * @param res
     * @param pathAddress
     */
    public static void down(HttpServletResponse res,String pathAddress) throws UnsupportedEncodingException {
        File file=new File(pathAddress);
        String fileName = file.getName();
        
        res.setHeader("content-type", "application/octet-stream");
        res.setContentType("application/octet-stream");
        res.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("utf-8"),"iso-8859-1"));
        
        byte[] buff = new byte[1024];
        FileInputStream bis = null;
        OutputStream os = null;
        try {
            os = res.getOutputStream();
            bis = new FileInputStream(file);
            int readTmp = 0;
			while ((readTmp = bis.read(buff)) != -1) {
			//并不是每次都能读到1024个字节,所有用readTmp作为每次读取数据	的长度,否则会出现文件损坏的错误
				os.write(buff, 0, readTmp);
				
			}
			
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (bis != null) try {
                bis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        System.out.println("success");
    }
Bellhop水声信道模型的仿真 Bellhop是一种基于射线追踪的水声信道模型,广泛用于预测水下环境中的声压场。它通过模拟声波在水中的传播路径,计算声场分布,适用于复杂的水下通信场景。 阅读详情

相关推荐

3DSlicer冠脉分割实战:从DICOM导入到三维重建的完整流程(附常见问题解决)

本文详细介绍了使用3DSlicer进行冠脉分割的完整流程,从DICOM数据导入到三维重建,涵盖环境配置、视图优化、心脏区域分割及冠脉精细分割等关键步骤。针对常见问题提供实用解决方案,帮助医学影像从业者高效完成心血管结构分析,提升诊断准确性。

weixin_29271053的博客 628

SpringBoot实现文件下载的几种方式

将文件以流的形式一次性读取到内存,通过响应输出流输出到前端 /** * @param path 想要下载的文件的路径 * @param response * @功能描述 下载文件: */ @RequestMapping("/download") public void download(String path, HttpServletResponse response) { try { // path是指想要下载的文件的路径 File file = new File(path); log.info(fi.

柳落青 7226

气象干旱触发水文(农业)干旱的概率及其触发阈值的动态变化-贝叶斯copula模型

本文通过建立不同类型干旱传播过程的触发阈值模型,解析了在不同等级气象干旱胁迫下诱发次一级干旱类型的触发阈值。通过贝叶斯概率模型,我们推导了气象干旱与水文干旱、农业干旱、地下水干旱之间的条件概率关系,进一步明确了气象干旱引发水文干旱、农业干旱和地下水干旱的概率及其触发阈值。该模型有效揭示了气象干旱对各级干旱类型的传播机制及其动态变化,为干旱预警系统的建立和水资源管理提供了理论依据和技术支持。

frankgis的博客 2503

SpringBoot-文件上传下载

文件上传是项目开发中最常见的功能之一

koen的博客 3720

武汉理工大学数据结构综合实验——连连看游戏综合实践

文章目录实验目的主要仪器设备及耗材一、实验要求二、分析与设计(非线性结构)1.数据结构的设计2.核心算法设计一条直线消子两条直线消子三条直线消子初始化游戏地图搜寻路径提示和重排3.测试用例设计4.测试效果总结 实验目的 (1)线性结构实验目的 调研连连看游戏,了解连连看游戏的功能和规则等 掌握集成开发工具VS2019的使用和C++的基础编程 了解MFC框架 了解线性结构,掌握数组的遍历、消子和胜负判断等算法 了解企业软件开发过程,应用迭代开发思路进行项目开发,养成良好的编程习惯和培养软件工程化思维 .

mo_zhe的博客 7612

告别手动输入!用Burp插件+ddddocr,5分钟搞定图片验证码自动识别

本文详细介绍了如何利用Burp插件和ddddocr开源库快速构建图片验证码自动识别系统,实现高效、零成本的验证码自动化解决方案。通过环境搭建、性能调优和Burp Suite深度集成,显著提升安全测试效率,特别适用于金融和电商系统的批量测试场景。

weixin_29099217的博客 202

springboot中下载文件

一开始使用的是InputStream inputStream = ClassLoader.getSystemResourceAsStream(fileName);本地可以,打包成jar后就报错了。这里resources目录必须指定。

huanshen7428的博客 1357

YOLO26改进策略【卷积层】| 引入注意力卷积模块RFAConv,关注感受野空间特征 助力YOLO26精度提升

RFAConv:创新空间注意力和标准卷积运算感受野空间特征是针对卷积核设计的,根据卷积核大小动态生成。以3×3卷积核为例,它由非重叠滑动窗口组成,每个窗口代表一个感受野滑块。

Limiiiing的博客 194

【springboot】保存前端传来的文件到本地

springboot配置类实现把前端上传的文件保存到本地

m0_60707623的博客 3469

【UVM实战】第七章:UVM中的寄存器模型(1)寄存器模型简介

寄存器模型简介~

悟已往之不谏 知来者之可追 2070

微信小程序 - 完美解决“code“:“NO_AUTH“,“message“:“商户号该产品权限未开通,请前往商户平台>产品中心检查后重试“(微信小程序报错问题排查解决)

微信小程序NO_AUTH: 商户号该产品权限未开通,请前往商户平台>产品中心检查后重试?微信小程序提示商户号该产品权限未开通,请前往商户平台>产品中心检查后重试,微信小程序"code":"NO_AUTH"错误码怎么解决,报错信息如下:httpResponseBody[{"code":"NO_AUTH","message":"商户号该产品权限未开通,请前往商户平台>产品中心检查后重试"}],微信小程序支付问题,如何解决这个问题,虚拟支付商户号,虚拟支付商户号里面没有产品支付的页面,排查商户号没问题,商户号配置

🏆 前端领域优质创作者 4444

SpringBoot文件下载-下载指定路径下的文件

下载指定路径下的文件 Controller代码 import com.thunisoft.jy.imp.utils.DownloadFileUtil; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; import org.springframework.core.io.InputStreamResource; i...

wangyucui123的博客 3万+

Codex、Claude Code、Opus、Trae、Cursor:一文讲懂 2026 AI 编程工具格局

2026年AI编程工具将形成三层体系:模型层(Opus/Codex)负责思考,执行层(Claude Code/Codex Agent)负责自动开发任务,工具层(Cursor/Trae)提供AI集成的开发环境。关键区别在于Agent路线强调AI主导自动化开发,而IDE路线保持人类主导。未来竞争力取决于能否将AI整合为生产力系统,掌握模型推理、Agent任务编排和AI IDE协同三大能力。核心转变是从"写代码"升级为"指挥AI写代码",高级玩家通过组合不同层级工具构建自动

m0_51738372的博客 2692

SpringBoot实现利用浏览器下载文件

SpringBoot实现利用浏览器下载文件 @RestController @RequestMapping("file") @Api(tags = "下载文件") public class downloadFile { @GetMapping("/downloadFile") public String sendXML(String path) { return export(new File(path)); } public ResponseEntity<

xff6060的博客 8149

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Springboot 文件下载

添加依赖:通常,文件下载功能不需要额外的依赖,但确保你的pom.xml或build.gradle文件中包含Spring Web依赖。如果你选择从类路径下载文件,将文件(例如example.txt)放在src/main/resources/static/目录下。服务器文件系统文件下载:http://localhost:8080/files/download/server。类路径文件下载:http://localhost:8080/files/download/classpath。

weixin_44268098的博客 567

怀旧版电脑GBC模拟器

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

在 Spring Boot 项目中实现文件下载功能

需求 在您的 springboot 项目中,可能会存在让用户下载文档的需求,比如让用户下载 readme 文档来更好地了解该项目的概况或使用方法。 所以,您需要为用户提供可以下载文件的 API ,将用户希望获取的文件作为下载资源返回给前端。 代码 maven 依赖 请您创建好一个 springboot 项目,一定要引入 web 依赖: <dependency> <grou...

Jake Weng 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

SpringBoot中实现文件的上传和下载

SpringBoot文件上传和下载的实现

keep coding!! 6353

springboot 删除路径下面所有文件_springboot文件上传删除下载

SpringBoot文件上传、删除及下载最近的项目中,需要将文件保存项目的根目录路径下,特此记录下文件的操作:文件上传/*** 文件上传(相对路径)**@paramuploadFile 文件*@paramrequest 参数*@return文件路径*/public staticString upload(MultipartFile uploadFile, HttpServletRequest...

weixin_32240065的博客 1535

<a>标签下载文件SpringBoot

a标签下载文件fill:///问题Springboot项目中需要通过a标签直接下载D盘下的.docx文件 Springboot项目中需要通过a标签直接下载D盘下的.docx文件 结果a标签href的值是 fill:///D:/test.docx 导致不能下载。 fill:/// = fill:localhost:8080/ 通过配置springboot虚拟目录(Spring MVC 概念模型类)来解决,将指定请求映射到D:/下 @Configuration public class WebMvcConfig

qq_41696740的博客 612

SpringBoot不需要配置Nginx也不需要接口,直接实现文件访问与下载

SpringBoot不需要配置Nginx也不需要接口,直接实现文件访问与下载

一恍过去 2万+

Spring Boot实现文件上传和下载

Web项目中,文件的上传和下载服务也是基于HTTP请求的,文件上传由于需要向服务接口提交数据,可以使用POST的请求方式,而文件的下载只是获取数据,因此可以使用GET请求方式。项目中经常会有上传和下载的需求,这篇文章简述一下springboot项目中实现简单的上传和下载。创建好指定的文件存放路径文件夹后,上传逻辑只需要将接收到的文件数据赋值到指定路径后即可。文件的下载逻辑是根据指定的文件名称到文件资源文件夹中获取,如果存在则返回文件。以上只是一些关键代码,所有代码请参见下面代码仓库。

HBLOG 1407

Java中利用SpringBoot框架实现文件下载功能

直接扔代码!!!!!!!!!!!!!!!!!!!!!!!!!!简单!!!!!!!!!!!!!!!!!!! @RequestMapping(value = "/download", method = RequestMethod.GET) public void downloadFile(@RequestParam("fileName") String fileName, HttpServ...

笑*容的博客 3070

SpringBoot整合Mongo实现文件上传下载

文件上传 @ApiOperation(value = "上传文件",notes = "上传文件") @RequestMapping(value = "/file/upload",method = RequestMethod.POST) public Object upload(@RequestParam("file") MultipartFile multiportFile, H...

yl_is_a_bird的博客 2728

Springboot文件上传和下载

Springboot文件上传和下载

qq_50541673的博客 507

springboot实现文件上传下载功能

logger.info("上传的文件:" + multipartFiles[i].getName()+","+multipartFiles[i].getContentType()+","return ResultUtil.error("下载附件失败,请检查文件“" + fileName + "”是否存在");logger.error("下载文件失败,请检查文件“"+ fileName +"”是否存在");//在文件中,不用/或者\最好,推荐使用File.separator。//检查到文件不存在则创建。

weixin_51504215的博客 274

Springboot文件下载

https://blog.youkuaiyun.com/stubbornness1219/article/details/72356632     Springboot对资源的描述提供了相应的接口,其主要实现类有ClassPathResource、FileSystemResource、UrlResource、ByteArrayResource、 ServletContextRes...

qq_40805231的博客 233
上一篇: ORA-27101: shared memory realm does not exist 解决方案
下一篇: MyBatis在xml文件中大于号以及小于号的表达方式
Monika、
博客等级 码龄7年 16粉丝 67原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Monika、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值