解决Spring文件下载时文件损毁问题
来源:互联网 发布:消失的爱人 知乎 编辑:程序博客网 时间:2024/05/16 15:48
首先,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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvchttp://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>
阅读全文
0 0
- 解决Spring文件下载时文件损毁问题
- 解决文件下载时文件名出现乱码的问题
- 解决文件下载时文件名乱码问题
- 解决JSP文件下载时文件名乱码问题
- 文件下载时文件名乱码问题
- android 解决下载时文件名中文和空格问题
- android 解决下载时文件名中文和空格问题
- 解决FTPClient上传文件时文件被破坏问题
- 解决php保存文件时文件名乱码问题
- 下载文件时文件名为乱码解决方法
- Struts2下载文件时文件名乱码
- php readfile(),解决下载文件因时文件太大而无法找到文件
- 文件下载时文件名在ie和firefox下面表现不一致问题
- Java中浏览器的文件下载时文件名乱码问题
- angular js 打开下载文件时文件名称为中文 IE浏览器出现乱码问题
- 解决Asp.net 实现文件下载时、输出文件时文件名的中文乱码和空格异常
- 解决Asp.net 实现文件下载时、输出文件时文件名的中文乱码和空格异常
- 解决Asp.net 实现文件下载时、输出文件时文件名的中文乱码和空格异常
- A标签中通过href和onclick传递的this对象实现思路
- makefile强制目标
- 山东教师教育网-404、登录、密码找回、常见问题、绑定已有账户
- java Sting 如何替换指定位置的字符
- 判断手机系统的版本号
- 解决Spring文件下载时文件损毁问题
- Spring MVC 环境搭建(二)
- Java的反射
- Spring Data JPA 自定义查询
- mysql 安装过程中出错
- JQUERY中对scrollTop、scrollHeight的理解
- ubuntu下安装mysql及卸载mysql方法
- Educational Codeforces Round 29 题解
- html5表单验证