SpringMvc下载文件损坏

  • 问题描述
    • 问题原因
    • 解决方案

问题描述

我的项目使用的是spring4.5 零xml配置方式搭建的,今天在处理文件下载的时候,发现pdf文件下载后总是提示文件损坏,无法打开。

问题原因

问题原因是java中会默认将InputStrem流转为String类型,再将String转换为OutputStream,如果文件中存在图片、音频、视频等内容时就会出错。

解决方案

在configureMessageConverters方法中添加byteArrayHttpMessageConverter转换。具体的代码如下

@Configuration
public class MyWebMvcConfigurationSupport extends WebMvcConfigurationSupport {@Autowiredprivate TokenInterceptor tokenInterceptor;@Overrideprotected RequestMappingHandlerMapping createRequestMappingHandlerMapping() {MyRequestMappingHandlerMapping  handlerMapping = new MyRequestMappingHandlerMapping();handlerMapping.setOrder(0);handlerMapping.setInterceptors(getInterceptors());return handlerMapping;}@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>> converters) {converters.add(byteArrayHttpMessageConverter());converters.add(jacksonConverter());}/*** 格式转换* @return*/@Beanpublic FastJsonHttpMessageConverter jacksonConverter() {List<MediaType> mediaTypes = new ArrayList<>();mediaTypes.add(MediaType.APPLICATION_XML);mediaTypes.add(MediaType.APPLICATION_FORM_URLENCODED);mediaTypes.add(MediaType.APPLICATION_JSON);FastJsonHttpMessageConverter converter =new AppMsgConverter();converter.setSupportedMediaTypes(mediaTypes);return converter;}@Beanpublic ByteArrayHttpMessageConverter byteArrayHttpMessageConverter(){return new ByteArrayHttpMessageConverter();}

SpringMvc下载文件损坏相关推荐

  1. springmvc 下载文件ie8可用

    springmvc 下载文件ie8可用 springmvc下载文件.需要获得相应的HttpServletRequest和HttpServletResponse.然后通过输出流把文件输出到浏览器.下面是 ...

  2. php 下载的文件损坏,PHP下载文件损坏与打开乱码问题解决办法

    以前我们是使用php生成下载文件时使用中文乱码了这个问题不会影响到文件的打开使用了,但小编今天 碰到下载文件打开乱码与文件损坏问题了,那么此问题要如何来处理 ?具体操作步骤如下 最近更新一个项目,下载 ...

  3. SpringBoot打成jar包部署,Excel模板下载文件损坏,提示恢复问题处理

    Spring Boot 静态资源Excel模板文件下载遇到的坑 问题描述: 使用spring boot,在resource/static目录下,有Excel模板文件, 需要提供给用户下载,用于数据的导 ...

  4. java ftpClient 下载文件损坏问题

    最近做ftp对接的需求,文件下载下来后,打开提示文件损坏.直接用ftp命令登录下载下来的文件就没问题.说明是java程序的问题.百度一下很快就找到了解决方案. 解决方案: 在下载或上传文件之前,设置文 ...

  5. python下载文件损坏_四种方法 恢复损坏的Excel文档

    打开一个以前编辑好的Excel工作簿,却发现内容混乱,无法继续进行编辑,而且还不能够进行打印.这是很多朋友在处理Excel文件时都可能会遇到的一个问题,面对这种情况时,我们应该怎么办呢? 出现上述情况 ...

  6. vue 下载word文档时谷歌浏览器正常,IE下载文件损坏

    项目场景: 用vue项目做一个后台管理,要做到兼容谷歌浏览器及IE浏览器,谷歌浏览器问题很少,但是由于IE浏览器比较老,涉及到的兼容问题也比较多. 问题描述: 在详情页面中有个下载按钮,下载word. ...

  7. python下载文件损坏_pythonw.exe停止工作,无法运行IDLE或任何.py文件 - python

    此问题与任何代码都不完全相同.我认为我的安装(python 3.3.5)以某种方式损坏.我尝试了卸载和重新安装以及修复,但是没有任何效果.自从我上次运行任何python代码或进行涉及python的操作 ...

  8. 百度网盘下载文件损坏 定位和解决方案

    问题发生情况:下载一个分卷压缩的文件,解压缩时提示压缩文件已经损坏,但是无法定位发生损坏的文件,如果重新下载全部文件耗时长而且可能再发生损坏. 解决思路:使用百度网盘的上传功能.百度网盘会优化上传操作 ...

  9. springmvc下载文件以及下载大文件方法

    后台springmvc方法: @RequestMapping(value = "/down", method = RequestMethod.GET) public Respons ...

  10. python下载文件损坏_Python检查图片是否损坏及图片类型是否正确过程详解

    检查图片是否损坏 日常工作中,时常会需要用到图片,有时候图片在下载.解压过程中会损坏,而如果一张一张点击来检查就太不Cool了,因此我想大家都需要一个检查脚本: 测试图片,0.jpg是正常的,brok ...

最新文章

  1. [软件工程] 查找二维数组最大子数组的之和 郭莉莉李亚文
  2. 初识ES-安装IK分词器
  3. 利用局域网性能测试仪保障企业网络环境
  4. mysql sleep 5908_mysql连接卡死,很多线程sleep状态,导致CPU中mysqld占用率极高(问题原因还待考证)...
  5. Docker ASP.NET Core 2.0 微服务跨平台实践
  6. TIOBE 11 月榜单:C、Swift、Go、D 与 Rust 起起伏伏
  7. ssh - 安全外壳协议的详解,为什么使用它
  8. 获取表结构信息(字段名,类型,长度,精度,小数位数,主键,自动增长)...
  9. Python 读写matlab中.mat文件
  10. win10系统重装鼠标右键响应慢怎么办
  11. bflvphnlrffbdbv
  12. python算法技巧——列表、字符串实用技巧
  13. base64编码,原理是什么,有什么作用?
  14. 如何写出“简单“代码?
  15. Java,看完我工资从12K变成了20K
  16. 第二节 opencv图片加水印
  17. 自然语言c,自然语言处理_自然语言处理常用方法举例说明 - 人工智能 - 电子发烧友网...
  18. 走进元宇宙:是什么、有什么、为什么?
  19. 程序设计基础(c语言)实验与习题指导实验题答案杨永斌 丁明勇,程序设计基础(c语言)实验与习题指导实验题答案杨永斌 丁明勇...
  20. Python实例26:佛祖镇楼

热门文章

  1. 一个https神奇的故事
  2. 2020年新年新气象
  3. 安装wincap时报错解决方式: an error occured when installing winpcap 0x00000430
  4. 青春有多9,我爱我所有
  5. 一堂难忘的计算机课作文,难忘的信息课作文
  6. 【论文阅读】Whisper: Robust Speech Recognition via Large-Scale Weak Supervision
  7. 如何提升邮箱邮件安全性,邮箱管理制度有哪些?
  8. 明道云在建筑工程行业的应用场景
  9. java m个苹果n个篮子_m个苹果放在n个盘子中有多少种结果
  10. 解密百度前端技术体系