Эта статья делится Spring 4 Скачать компоненты для вашей ссылки. Конкретный контент заключается в следующем
пакет com.hnust.common.controller; Импорт org.apache.commons.io.fileutils; import org.springframework.http.httpheaders; import org.springframework.http.httpstatus; import org.springframework.http.mediatype; import org.spramework.httpsonse.http.mediatype; import.spramework.httpsonse.http.mediatype; import org.spramework.http.mediatype; org.springframework.web.bind.annotation.restcontroller; import java.io.file; импорт java.io.ioexception; импорт java.io.unsupportedencodingexception; импорт java.net.urlencoder; /*** Создано Heweipo 2016/5/27. * <p>* Загрузить общий контроллер*/ @restcontrollerpublic class downloadcontroller extends basecontroller {/*** Загрузить файл общего метода** @param файл файла объекта* @return file byte stream*/public response <byte []> export (файл файла) {return export (file.getName (), file); } / *** Общий метод загрузки файлов** @param filename Имя файла* @param Файл Файл объект* @return file byte stream* / public responseentity <byte []> export (string filename, файл файл) {httpheaders headers = new httpheaders (); headers.setContentType (mediaType.application_octet_stream); Headers.SetContentDispositionFormData («Приложение», EncodeFilename (имя файла)); Responseentity <byte []> rs = null; try {// httpstatus.created 201 не может быть использован здесь, потому что IE Edge не может его распознать, но Firefox Chrome не является проблемой rs = new RecaptEntity <> (fileutils.readfileTobyTearRay (файл), заголовки, httpstatus.ok); } catch (ioException e) {// бросить новое Commonexception (responseStatusEnum.file_error, e); } return rs; }/** * Имя файла загрузки, которое является именем, отображаемым в браузере * * @param filename name * @return добавлено имя файла * <p> * ie * mozilla/5.0 (Windows nt 10.0; Wow64; Trident/7.0; RV: 11,0) как Gecko * <p> * Edge * Mozilla/5.0 (Windows nt 10.0; Applewebkit/537.36 (khtml, как гекко) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586 * <p> * Firefox * Mozilla/5.0 (Windows NT 10,0; WOW64; RV: 46.0) Gecko/20100101 (Windows NT 10,0; rv: 46.0) Gecko/2011101/46.0 * rv: 46.0). Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebkit/537.36 (khtml, как гекко) Chrome/47.0.2526.106 Safari/537.36 */private String EncodefilEname (строка файл) {String name = fileName; try {string agent = request.getheader ("user-agent"). tolowercase (); if (null! = Agent && (aggent.contains ("msie") || agget.contains ("edge"))) {// ie read name = urlencoder.encode (имя файла, "UTF-8"); } else if (agget.contains ("safari") || agent.contains ("chrome") || agent.contains ("firefox")) {// safari Chrome firefox name = new String (filememe.getbytes ("utf-8"), "iso-8859-1"); } else {// IE10 IE11 name = urlencoder.encode (имя файла, "UTF-8"); } // Восстановите знак плюса в пространство (т.е. Edge имеет проблему) name = name.replace ("+", "%20"); } catch (unsupportEncodingexception e) {// бросить новое Commonexception (responseStatusEnum.failure, e); } return name; }} Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.