springMVC注解式下载文件
来源:互联网 发布:材料工程硕士知乎 编辑:程序博客网 时间:2024/05/16 13:04
使用spring下载文件有两种方式,一种是java通用的文件放入返回流,前两天刚写过地址如下
http://blog.csdn.net/fenfei_zqh/article/details/78789261
今天来记录另一种下载方式Spring注解 @ResponseEntity
@RequestMapping("/download") @ResponseBody public ResponseEntity<byte[]> download() throws IOException { //文件存储路径可替换成文件所在服务器的绝对地址 String path="F:\\apache-tomcat-8.5.23\\apache-tomcat-8.5.23\\temp\\20171219200233847_.xls"; File file=new File(path); //创建一个HttpHeader HttpHeaders headers = new HttpHeaders(); String fileName=new String("你好.xls".getBytes("UTF-8"),"iso-8859-1");//为了解决中文名称乱码问题 //设置返回类型无论是txt、excel都可以使用MediaType.APPLICATION_OCTET_STREAM类型 headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); headers.setContentDispositionFormData("attachment",fileName); return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.OK); }
代码操作很简单,可是在下载时遇到了另一个问题,内容乱码
原文件
下载后文件
看了很多其他人的解决方式主要是在spring-mvc.xml(spring配置文件)添加形如
<bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> <value>text/plain;charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean>
可是并解决不了问题
最后的解决方法反而有点搞笑,就是去掉配置文件里所有形如上面那些代码
<!--<mvc:annotation-driven>--> <!--<mvc:message-converters register-defaults="true">--> <!--<bean class="org.springframework.http.converter.StringHttpMessageConverter">--> <!--<property name="supportedMediaTypes">--> <!--<list>--> <!--<value>text/html;charset=UTF-8</value>--> <!--<value>text/plain;charset=UTF-8</value>--> <!--<value>application/json;charset=UTF-8</value>--> <!--</list>--> <!--</property>--> <!--</bean>--> <!--<!–<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>–>--> <!--<!– 配置Fastjson支持 –>--> <!--<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter" p:charset="UTF-8">--> <!--<property name="supportedMediaTypes">--> <!--<list>--> <!--<value>application/json;charset=UTF-8</value>--> <!--<value>text/html;charset=UTF-8</value>--> <!--<value>text/plain;charset=UTF-8</value>--> <!--</list>--> <!--</property>--> <!--<property name="features">--> <!--<list>--> <!--<value>WriteMapNullValue</value>--> <!--<value>QuoteFieldNames</value>--> <!--<value>WriteDateUseDateFormat</value>--> <!--<value>WriteEnumUsingToString</value>--> <!--</list>--> <!--</property>--> <!--</bean>-->
注释掉原来代码中的这些配置反而文件下载内容正确了。遇到bug大部分我们都会考虑是我们少写了什么,而恰恰有那一个bug是因为多写了导致的
就像对于感情,总以为她不回头是因为给的她还不够,或许有可能是给的她太多了,一个普普通通的程序员,一个有梦想的程序员。
阅读全文
0 0
- springMVC注解式下载文件
- SpringMVC—文件下载
- SpringMvc下载excel文件
- SpringMvc 通用文件下载
- springMVC 文件下载
- SpringMvc下载excel文件
- springmvc下载文件
- springmvc 文件下载
- springMVC 文件下载
- SpringMvc下载excel文件
- springMVC文件下载
- springMVC下载文件
- SpringMVC文件下载
- SpringMvc下载文件
- SpringMvc 上传/下载 文件
- SpringMVC上传、下载文件
- SpringMVC 实现文件下载
- SpringMVC实现文件下载
- 我们诚心诚意的给射手座挑选了两款礼物,希望还来得及丨钛空智慧星球
- 泛型在C#和其他语言中的限制
- Git1-使用webstorm管理git
- Redis篇
- Linux常用命令之权限管理命令
- springMVC注解式下载文件
- 建立maven模块化项目遇到的问题总结
- Jsoncpp用法
- kafka 1.0 中文文档(四)--主题级别配置(Topic-Level Configs)
- zoom mode work mode
- Spark SQL简介
- 内核调试之dump_stack
- 敌人定点巡逻
- Spring-data-mongodb Converter实现