解决Spring文件下载时文件损毁问题

基于Jenkins+Gitlab+Docker实现SpringBoot项目自动部署 基于Jenkins+Gitlab+Docker实现SpringBoot项目自动部署1. 使用Docker搭建Jenkins1.1 拉取Jenkins镜像1.2 创建目录1.3 启动容器1.4 打开Jenkins管理页面1.5 查看日志获取初始密码1.6 安装推荐的插件1.7 成功安装Jenkins2. 配置Jenkins2.1 设置Jenkins时区为北京时间2.2 安装自动化构建和部署所需的插件... 阅读详情

首先,spring文件下载的代码如下:

    /**
     * 文件下载
     * @return
     * @throws IOException
     */
    @RequestMapping(value="/download")
    public ResponseEntity<byte[]> download(String filename)throws Exception {
        // 获取下载文件路径
        String path = request.getServletContext().getRealPath("/uploads/");
        // 获取下载文件
        File file = new File(path + File.separator + filename);

        // 解决文件下载时中文文件名乱码
        String downloadFielName = new String(filename.getBytes("UTF-8"),"iso-8859-1");

        // 设置头信息
        HttpHeaders headers = new HttpHeaders();
        // 设置浏览器以attachment(下载方式)
        headers.setContentDispositionFormData("attachment", downloadFielName);
        // application/octet-stream : 二进制流数据
        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        
        return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED);
    }

解决下载文件损毁问题:

下载下来的文件会出现乱码或者文件内容损坏的情况,解决办法如下:

在springmvc配置文件中,配置ByteArrayHttpMessageConverter类:

	<bean id="arrayHttpMessageConverter" class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>

引入该类时,该类要在StringHttpMessageConverter类和MappingJackson2HttpMessageConverter类之前;

完整配置为:

<?xml version="1.0" encoding="UTF-8"?>
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/mvc
	http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!-- 开启控制反转注解的支持 -->
    <context:component-scan base-package="com.soft863" use-default-filters="false">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <!-- 开启mvc注解的支持 -->
    <mvc:annotation-driven>
        <mvc:message-converters>
            <!-- arrayHttpMessageConverter要放在后面两个之前 -->
            <ref bean="arrayHttpMessageConverter" />
            <ref bean="stringHttpMessageConverter" />
            <ref bean="mappingJackson2HttpMessageConverter" />
        </mvc:message-converters>
    </mvc:annotation-driven>

    <!-- 配置Spring视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

    <!-- 文件上传解析器 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="utf-8"></property>
        <property name="maxUploadSize" value="999999999"></property>
    </bean>

    <!-- spring文件下载 -->
    <bean id="arrayHttpMessageConverter" class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>

    <!-- 解决中文乱码:该类解决当返回的数据是字符串包含中文时出现乱码问题 -->
    <bean id="stringHttpMessageConverter"
          class="org.springframework.http.converter.StringHttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>text/html;charset=utf-8</value>
            </list>
        </property>
    </bean>
    <!-- 解决IE低版本下载返回json数据 -->
    <bean id="mappingJackson2HttpMessageConverter"
          class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>text/html;charset=utf-8</value>
                <value>application/json;charset=utf-8</value>
            </list>
        </property>
    </bean>

    <!-- 解决静态资源拦截问题 -->
    <mvc:default-servlet-handler />
</beans>



SpringCloud详细示例 spring-cloud-book 涵盖spring cloud开发的各个组件使用示例,值得一看 立即下载

相关推荐

logisim计组实验八 乘法器

原理:点这里 有问题欢迎留言哦~ 文章目录五位阵列乘法器电路图时间延迟分析六位补码阵列乘法器五位无符号乘法流水线原理图电路图原码一位乘法器原理图电路图补码一位乘法器 五位阵列乘法器 电路图 此处注意:全加器FA的cout端是进位端而非输出端 使用硬件控制比循环累加的速度快得多。 但是存在串行进位链 改进版: 时间延迟分析 T是计算相加数的一级门延迟 3n–>2n 性能差别在1.5倍 ...

treblez's blog 2万+

springBoot 下载文件打不开,提示损坏解决方案

下载excel,发现打不开,提示损坏。重新引入maven的pom。

m0_59061013的博客 1782

手把手教你用Python 3.11和Node.js 18在Windows 11上搭建Dify开发环境

本文提供了一份详尽的Windows 11本地Dify开发环境搭建指南。文章手把手教你完成从Python 3.11、Node.js 18的安装配置,到PostgreSQL、Redis数据库服务的部署,再到前后端服务的启动与联调的全过程,并包含常见问题排查与效能优化建议,旨在帮助开发者构建一个稳定、可调试的Dify本地开发环境。

fire9的博客 645

SpringBoot下载文件文件损坏等问题

springboot下载文件的一列列坑

qq_37497275的博客 3258

别再乱选WiFi信道了!手把手教你用WiFi Analyzer优化2.4G/5G家庭网络(附避坑指南)

本文详细介绍了如何使用WiFi Analyzer工具优化家庭WiFi网络,解决2.4GHz和5GHz信道的冲突问题。通过分析信道拥堵原因、提供安装使用指南及优化策略,帮助用户显著提升网络速度与稳定性,特别适合密集住宅区和多设备家庭。

weixin_42665725的博客 5880

垂直领域论坛数据挖掘:Python突破Discuz!加密与用户画像构建指南

在垂直领域论坛,如专业技术论坛、兴趣爱好社区等,积累了大量有价值的信息和用户数据。这些数据不仅可以帮助我们了解用户的行为模式和兴趣点,还能为社区运营、产品优化、商业决策等提供有力支持。然而,许多基于Discuz!系统的论坛对数据进行了加密保护,给数据挖掘带来了一定的挑战。本文将详细探讨如何使用Python突破Discuz!论坛的加密机制,并构建用户画像,实现数据掘金。

u014481728的博客 1693

关于spring加载(下载)xsd文件失败的问题。

一,前言 最近在开发的过程中,遇到了一个奇怪的问题,项目启启停停了几次之后,突然就跑不起来了。主要的报错信息如下: 1.Ignored XML validation warning schema_reference:无法读取文档 'xxx.xsd' 2.Server return HTTP response code :403 for URL : xxx.xsd 3.Context initialization fialed 大概就是这几个问题,可以看出来是xsd加载的问题,然后就开始了..

A_droid的博客 2178

AI绘画与医疗可视化:用AI生成医学插图的实践

医疗可视化是医学教育、临床沟通和学术研究的核心工具。传统医学插图依赖手工绘制或专业3D建模,存在制作周期长、成本高、更新迭代慢等问题。随着深度学习技术的发展,AI绘画工具(如Stable Diffusion、DALL-E)展现出强大的图像生成能力,但医疗领域对插图的解剖准确性、标注规范性和语义完整性有极高要求,通用AI模型难以直接应用。本文聚焦AI技术与医疗领域的交叉创新,系统阐述如何通过数据预处理、模型定制化训练和后处理校验,构建符合医疗标准的插图生成系统。

大模型应用工坊 1788

spring下载 文件已损坏,springMvc下载 文件已损坏

下载文件的时候,文本文件正常,对于一些 二进制文件,入word,图片 excel等下载后会提示文件已损坏 原因是:maven在打包的时候,可以替换 resource目录下文件 中的一些变量 比如用xml文件中记录的数据库连接信息等(property文件中定义的变量)(如 ${jdbc.name}等) filtering 为ture表示要过滤,excludes 表示打包的时候排除掉 temp目...

一路向前前的专栏 1660

2026滑块验证码终极实战:缺口检测算法+人机轨迹模拟,识别率从60%飙升至95%全方案

**摘要:2026年AIGC技术发展导致传统验证码失效,滑块验证码成为主流防护手段。本文深入分析了传统方案识别率低的原因,并提出多级检测融合和行为拟合优化方案。通过图像预处理优化、三级缺口检测引擎(差分图像法、Hu矩轮廓匹配、YOLOv8n模型兜底)将识别率提升至99.2%。同时针对轨迹模拟环节,设计了包含抖动特征、时间随机性和个体差异的行为模型,使通过率从12%提升至87%。该方案解决了传统方法在缺口定位精度和轨迹真实性方面的核心痛点,为应对新一代验证码风控提供了完整的技术框架。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1899

一文吃透 ABAP CDS SELECT:语法全景、关联与去重、可运行示例与实战心法

摘要: 本文深入解析ABAP中CDS视图的SELECT语法,重点介绍两种等价写法、关联与路径表达式优化、DISTINCT去重逻辑及WHERE/GROUP BY/HAVING/UNION等子句的应用。通过可运行的业务伙伴角色去重、关联路径查询及多角色筛选示例,演示如何将CDS特性转化为项目实践。强调关联复用性优于传统JOIN,并指出DISTINCT的权限边界与误用场景,帮助开发者从行式思维转向图式数据建模。(150字) 关键词: ABAP CDS、SELECT语法、路径表达式、DISTINCT去重、关联复用

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

springboot在开发文件下载过程中出现的文件损坏问题

链接:https://www.jianshu.com/p/f4016e2e1158 https://blog.youkuaiyun.com/xinyuebaihe/article/details/88249561 文件下载后文件损坏的问题,今天做项目碰到了,就顺便做个笔记吧! 本地文件下载: public void getWordFile(HttpServletRequest request, Ht...

CMchenmeng的博客 6992

133.在 Vue3 中使用 OpenLayers 实现画多边形、任意编辑、遮罩与剪切处理功能

《Vue3+OpenLayers实现多边形绘制与区域处理》摘要:本文介绍如何基于Vue3+OpenLayers+ol-ext实现地图多边形交互功能。核心功能包括:鼠标绘制任意多边形、拖动顶点编辑边界、遮罩显示(非选区变红)、选区剪切显示及功能重置。技术方案采用OpenLayers处理地图渲染,ol-ext实现高级遮罩/剪切效果,ElementPlus提供UI控件。该方案适用于城市规划、园区展示等需要区域标记的场景,完整代码展示了从初始化、绘制、编辑到特效处理的全流程实现。

小彭的博客 959

spring mvc下载文件简绍和常见问题

1. 使用Servlet API 原生方式下载 //设置编码为UTF-8 @RequestMapping(value = "/downTemplate",produces="text/html;charset=UTF-8") public void downTemplate(HttpSe...

chuanxuzheng1943的博客 216

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

SpringBoot集成

1.springBoot特征: 创建独立的Spring应用程序 直接嵌入Tomcat、Jetty或Under拖车(不需要部署WAR文件) 提供固执己见的“starter”依赖关系,以简化构建配置 尽可能自动配置Spring和第三方库 提供生产准备功能,如度量、健康检查和外部化配置。 绝对不需要生成代码,也不需要xml配置。 2.springboot概述 SpringBoot使得创建独立的、生产级的...

逆水乘舟,不进则退 1200

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

图书馆书库管理系统

当下,如果还依然使用纸质文档来记录并且管理相关信息,可能会出现很多问题,比如原始文件的丢失,因为采用纸质文档,很容易受潮或者怕火,不容易备份,需要花费大量的人员和资金来管理用纸质文档存储的信息,最重要的是数据出现问题寻找起来很麻烦,并且修改也困难,如果还这样操作会造成很大的资源浪费和经济损失。图书馆书库管理系统就是采用目前最流行的互联网应用思维,让信息处理变得更加高效,并且处理结果更加的符合预期,只要是关于数据管理方面,不管是添加还是修改,以及数据维护甚至是数据迁移,都可以达到更快更安全的要求。

xn19950718的博客 394

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SpringBoot在非遗表演艺术数字化管理中的应用实践

SpringBoot作为现代化的Java开发框架,通过自动配置和起步依赖显著提升了开发效率,特别适合构建中小型管理系统。其核心原理是基于约定优于配置的理念,整合Spring生态系统的各种组件。在非遗表演艺术数字化管理场景中,SpringBoot与MyBatis、Redis等技术的结合,有效解决了传统手工管理方式存在的资料检索效率低下、数据易丢失等问题。通过实现艺术档案管理、演出预约等核心模块,系统能够支持多媒体资源的高效存储与检索,并利用JWT和CORS保障接口安全。这种技术方案不仅提升了非遗文化的数字化保

weixin_34288121的博客 320

ssm的求职招聘系统|兼职应聘计算机毕业论文Java项目源码下载

💖💖更多项目资源,最下方联系我们✨✨✨✨✨✨目录Java项目介绍资料获取系统使用用户的数量直接决定了用户信息管理者的工作量,毫无疑问,网站管理者的工作量较大较繁琐。通过前期的调研总结出网站现有的对用户管理工作状况如下分析:(1)缺少统筹规划,如果一个网站在信息化管理中缺少综合性、系统性、整体性,那不可避免的需要投入大量人力物力来规划整理信息。引入信息化管理方式无疑可以达到节省信息管理成本的目的不仅减少资源浪费还可以使高校学籍的信息变得井井有条,成为市场竞争中的一大优势。(2)要循序渐进,心急吃不了热豆腐

luochunlong123的博客 179

【超全】基于Springboot的农产品销售系统【包括源码+文档+调试】

该课题采用的主流的Java语言这种面向对象的语言进行农产品销售系统的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。

qq_59110836的博客 699

Java入门你值得拥有!每个程序员都必须掌握的8种数据结构

前言 前段时间,我向一位在阿里的朋友寻求进大厂的秘诀,他分享给我一份阿里内部资料——JAVA核心进阶手册,仔细翻阅一番才知道里面收纳整理的知识可真是齐全,不得不来感叹一番… 我将JAVA核心进阶手册大致分为以下5篇内容 基础:多线程+网络+数据结构与算法+MySQL+Tomcat 框架:设计模式+Spring+SpringMVC+MyBatis 分布式架构:限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka) 微服务架构:RPC+SpringBoot+

m0_56146626的博客 144

基于Springboot的农产品销售系统【源码+文档+调试】

该课题采用的主流的Java语言这种面向对象的语言进行农产品销售系统的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。

混迹java圈十余年,精通Java、小程序、数据库等。 799

Java面试题目,java字符串长度计算

第一篇Linux基础学习篇 目录 第零章﹑计算机概论关于电脑的硬件组成部分﹐其实你可以观察你的台式机来分析一下﹐依外观来说这家伙主要可分为三部分﹐分别是∶ 输入单元∶包括键盘﹑鼠标﹑读卡机﹑扫描仪﹑手写板﹑触摸屏等等一堆﹔ 主机部分∶这个就是系统单元﹐被主机机箱保护住了﹐里面含有一堆板子﹑CPU与内存等﹔ 输出单元∶例如屏幕打印机等等 第一章、Linux是什么与如何学习我们知道Linux这玩意儿是在计算机上面运行的﹐所以说Linux就是一组软件·问题是这个软件是操作系统还是应用程序?且Linux可

m0_57205294的博客 155

Springboot文档管理系统 yb510(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

11] 高强,魏震.县域智慧旅游管理系统开发案例研究[J].广播电视网络,2022,29(09):110-113.DOI:10.16045/j.cnki.catvtec.2022.09.002.[8]杨梵.软件测试技术的关键能力培养探讨[J].福建电脑,2022,38(09):71-74.DOI:10.16707/j.cnki.fjpc.2022.09.016.[9] 刘小群,邢艳芳,刘梅.《软件测试基础》课程思政与翻转课堂的教学探索[J].产业与科技论坛,2022,21(17):120-122.

zy18476271135的博客 445

企业级医院档案管理系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

直接拿走,意外获得200多套代码,需要的滴我企业级医院档案管理系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】(可提供说明文档(通过*AIGC*)

yunque__的博客 867

【新】基于Springboot的农产品销售系统

该课题采用的主流的Java语言这种面向对象的语言进行农产品销售系统的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。

namixuezhang11的博客 682
上一篇: Bootstrap的下载
下一篇: Redis初体验
昔小年
博客等级 码龄11年 17粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值