Dieser Artikel teilt Spring 4 -Download -Komponenten für Ihre Referenz. Der spezifische Inhalt ist wie folgt
Paket com.hnust.common.controller; import org.apache.commons.io.fileutils; import org.springframework.http.httpheaders; import org.springframework.http.httpstatus; org.springframework.web.bind.annotation.restcontroller; import java.io.file; import Java.io.io.ioException; import Java.io.unsupportedenCodingException; importieren java.net.urlencoder; /*** Erstellt von Heweipo am 2016/5/27. * <P>* Allgemeiner Controller herunterladen*/ @rastControllerPublic -Klasse DownloadController erweitert BaseConTroller {/*** Download Datei Allgemeine Methode** @param Datei -Dateiobjekt* @return Datei Byte Stream*/public Antwort <Byte []> Export (Datei Datei return Export (Datei), Datei (), Datei); } / *** Allgemeine Methode zum Herunterladen von Dateien** @param Dateiname -Dateiname* @param Datei -Dateiobjekt* @return Datei Byte Stream* / public responseentity <Byte []> Export (String Dateiname, Dateidatei) {httpHeaders Headers = new Httpheaders (); Headers.SetContentType (mediatype.application_octet_stream); Headers.SetContentDispositionFormData ("Attachment", EncodeFileName (Dateiname)); Responseentity <Byte []> rs = null; Versuchen Sie {// httpStatus.Created 201 können hier nicht verwendet werden, da IE Edge es nicht erkennen kann, aber Firefox Chrome ist kein Problem mit RS = New Responseentity <> (FileUtils.ReadFileToBytearray (Datei), Header, httpstatus.ok); } catch (ioException e) {// neue commonexception (responstatusenum.file_error, e) werfen; } return rs; }/** * Der Name der Download -Datei, die der Name im Browser * * @param Dateinamen Dateiname * @Return Dateiname * <p> * dh * Mozilla/5.0 (Windows nt 10.0; WoW64; Trident/7.0; Applewebkit/537.36 (khtml, wie Gecko) Chrom/46.0.2486.0 Safari/537.36 Edge/13.10586 * <p> * Firefox * Mozilla/5.0 (Windows NT 10,0; WoW64; Mozilla/5.0 (Windows NT 10.0; WoW64) AppleWebkit/537.36 (KHTML, wie Gecko) Chrome/47.0.2526.106 Safari/537.36 */private String -EncodeFileName (String FileName) {Stringame = Filename; try {string agent = request.getheader ("user-Agent"). TolowerCase (); if (null! } 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 (Dateiname, "utf-8"); } // das Pluszeichen in einen Speicherplatz wiederherstellen (dh Edge hat ein Problem) name = name.replace ("+", "%20"); } catch (unportedenCodingException e) {// Neue CommonException (responstatusenum.failure, e) werfen; } Rückgabename; }} Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.