當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
解决Spring文件下载时文件损毁问题
生活随笔
收集整理的這篇文章主要介紹了
解决Spring文件下载时文件损毁问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先,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"?> <beansxmlns="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.xsdhttp://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>
總結
以上是生活随笔為你收集整理的解决Spring文件下载时文件损毁问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 正好配资点评北交所成立,新基建起爆
- 下一篇: 网络聊天室项目介绍