이 기사는 참조를 위해 Spring 4 다운로드 구성 요소를 공유합니다. 특정 내용은 다음과 같습니다
패키지 com.hnust.common.controller; import org.apache.commons.io.fileutils; import org.springframework.http.httpheaders; import org.springframework.http.httpstatus; import org.springframework.http.medivertype; import org.springframework.http.rsponseentity; org.springframework.web.bind.annotation.restcontroller; import java.io.file; import java.io.ioexception; import java.io.unsupportedencodingException; import java.net.urlencoder; /*** Heweipo가 2016/5/27에 작성했습니다. * <p>* 일반 컨트롤러 다운로드*/ @restControllerPublic Class DownloadController 확장베이스 컨트롤러 {/*** 파일 다운로드 일반 메소드** @param 파일 파일 객체* @return 파일 바이트 스트림*/public response []> Export (파일 파일) {return export (file.getname (), 파일); } / *** 파일을 다운로드하는 일반적인 방법** @param filename 파일 이름* @param 파일 파일 개체* @return 파일 바이트 스트림* / public responseentity <byte []> 내보내기 (문자열 filename, 파일 파일) {httpheaders headers = new httpheaders (); headers.setContentType (mediaType.Application_octet_stream); headers.setContentDispositionFormData ( "첨부 파일", encodeFilename (filename)); 응답 중단 <byte []> rs = null; 시도 {// httpstatus.created 201은 여기에서 가장자리를 인식 할 수 없기 때문에 여기서 사용할 수 없지만 Firefox Chrome은 문제가되지 않습니다. RS = New ResponseNtity <> (fileUtils.ReadFileToByTeArray (파일), 헤더, httpstatus.ok); } catch (ioexception e) {// 새로운 commonexception 던지기 (responseStatusenum.file_error, e); } rs; }/** * 브라우저에 표시된 이름 인 다운로드 파일의 이름 * * @param filename 파일 이름 * @return 추가 파일 이름 * <p> * ee * mozilla/5.0 (Windows NT 10.0; Wow64; Trident/7.0; rv : 11.0) gecko * <p> * mozilla/5.0 (windows nt 10.0; win64; x64). Applewebkit/537.36 (Gecko Like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586 * <p> * Firefox * Mozilla/5.0 (Windows NT 10.0; wow64; RV : 46.0) Mozilla/5.0 (Wind try {string agent = request.getheader ( "user-agent"). tolowercase (); if (null! = agent && (agent.contains ( "msie") || agent.contains ( "edge"))) {// edge name = urlencoder.encode (filename, "utf-8"); } else if (agent.contains ( "safari") || agent.contains ( "chrome") || agent.contains ( "firefox")) {// safari chrome firefox name = new String (filename.getBytes ( "utf-8"), "iso-8859-1"); } else {// ie10 ie11 name = urlencoder.encode (filename, "utf-8"); } // 플러스 부호를 공간으로 복원합니다 (즉, 가장자리는 문제가 있습니다) 이름 = name.replace ( "+", "%20"); } catch (UnsupportedEncodingException e) {// 새로운 commonexception 던지기 (responseStatusenum.failure, e); } 반환 이름; }} 위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.