springMVC实现文件下载(附带Servlet方式)
生活随笔
收集整理的這篇文章主要介紹了
springMVC实现文件下载(附带Servlet方式)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、Servlet實現方式
import java.io.File; import java.io.IOException; import java.io.OutputStream;import javax.servlet.http.HttpServletResponse;import org.apache.commons.io.FileUtils;public class MyController {public static void downLoadFile(HttpServletResponse response, File file) {if (file == null || !file.exists()) {return;}OutputStream out = null;try {response.reset();response.setContentType("application/octet-stream; charset=utf-8");response.setHeader("Content-Disposition", "attachment; filename=" + file.getName());out = response.getOutputStream();out.write(FileUtils.readFileToByteArray(file));out.flush();} catch (IOException e) {e.printStackTrace();} finally {if (out != null) {try {out.close();} catch (IOException e) {e.printStackTrace();}}}}}二、SpringMVC方式
public ResponseEntity<byte[]> download(String fileName, File file) throws IOException {String dfileName = new String(fileName.getBytes("gb2312"), "iso8859-1");HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);headers.setContentDispositionFormData("attachment", dfileName);return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED);}需要加入亂碼配置:
<!-- 設置json和response的字符編碼 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list><bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" /><bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"><list><value>text/plain;charset=UTF-8</value></list></property></bean></list></property> </bean>總結
以上是生活随笔為你收集整理的springMVC实现文件下载(附带Servlet方式)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tomcat配置文件server.xml
- 下一篇: 手动创建1个基于xml配置的spring