In diesem Artikelbeispiel wird der spezifische Code von Vue zum Herunterladen von ZIP-Dateien zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt el-Taste <el-button size="mini" type="success" @click="downloadHandle(fileName, fileLocation)">Herunterladen</el-button> js-Verarbeitungsanweisungen Anforderungs-Interceptor request.js
Axios von „Axios“ importieren // Eine Axios-Instanz erstellen const service = axios.create({ baseURL: '', // Basis-URL der API Timeout: 20000, // Anforderungs-Timeout-Parameter: { //Anforderungsparameter} }); // Interceptor anfordern service.interceptors.request.use(config => { // .... Konfiguration wird verarbeitet...... Konfiguration zurückgeben } Standarddienst exportieren Der Anforderungs-Interceptor wird vor der Anforderung verarbeitet und kann HTTP-Header-Einstellungen hinzufügen, zum Beispiel: 1. HTTP-Anforderungsheader: Token, Cookie, Sitzung und andere Werte werden hinzugefügt (config.headers ['Backend-Wertname'] = 'zugehöriger Wert';): (1) config.headers['token'] = 'Token-Wert'; 2. Header-Post-Einstellungen: wie Content-Type Um eine Datei hochzuladen, verwenden Sie: config.headers.post['Content-Type'] = 'multipart/form-data'; ZIP-Datei herunterladen1. request.js-Code: Axios von „Axios“ importieren // Eine Axios-Instanz erstellen const service = axios.create({ baseURL: '', // Basis-URL der API Timeout: 20000, // Anforderungs-Timeout-Parameter: { //Anforderungsparameter} }); // Interceptor anfordern service.interceptors.request.use(config => { // Konfiguration fügt Token-Wert hinzu config.headers['token'] = getToken(); // getToken() ist meine Methode zur Werterfassung, die Systemüberprüfung verwendet die Rückgabekonfiguration } Standarddienst exportieren 2. Vue-Seite verweist auf request.js Importieren Sie die Anforderung von „@/utils/request“. Download-Verarbeitung // fileName Download-Einstellungsname, fileLocation Dateispeichername downloadHandle(fileName,fileLocation) { lass prome = { Dateispeicherort: Dateispeicherort } Anfrage.Post( '/api/downloadFile', Versprechen, { Antworttyp: "Blob", Zeitüberschreitung: 60000 } ).dann(Antwort => { wenn (!Antwort.Größe) { diese.$nachricht({ Meldung: 'Keine Datei zum Download verfügbar', Typ: "Warnung" }) zurückkehren } const url = Fenster.URL.createObjectURL(neuer Blob([Antwort])) const link = fenster.dokument.createElement('a') link.style.display = "keine" link.href = URL link.setAttribute('download', Dateiname+'.zip') Dokument.Body.AnhängenKind(Link) link.klick() }).catch((Daten) => { console.log(Daten) }) }, Hintergrundverarbeitung Wird von der Java-API basierend auf der Anfrage /api/downloadFile verarbeitet Paket com.web.controller; importiere org.springframework.web.bind.annotation.RequestBody; importiere org.springframework.web.bind.annotation.RequestMapping; importiere org.springframework.web.bind.annotation.RestController; importiere javax.servlet.http.HttpServletRequest; importiere javax.servlet.http.HttpServletResponse; importiere java.io.File; importiere java.io.FileInputStream; importiere java.io.OutputStream; importiere java.net.URLEncoder; importiere java.util.Map; @RestController @RequestMapping("/api") öffentliche Klasse DownloadFileDemo { /** * Dateidownload * @param tranNap * @param Anfrage * @param Antwort */ @RequestMapping(Wert = "/Download-Datei") public void downloadFile(@RequestBody Map<String, Object> tranNap, HttpServletRequest-Anforderung, HttpServletResponse-Antwort) { Zeichenfolge Dateispeicherort = tranNap.get("Dateispeicherort")+""; versuchen { Zeichenfolge Dateipfad = "D:/Datei/" + Dateispeicherort + ".zip"; //Datei abrufen. Datei. Datei = neue Datei (Dateipfad); wenn (!file.exists()) { System.out.println("[Dateidownload] Keine Datei zum Download verfügbar"); zurückkehren; } FileInputStream fileInputStream = neuer FileInputStream(Datei); //Setzen Sie den HTTP-Antwortheader, um dem Browser mitzuteilen, dass er den Dateinamen Dateiname herunterladen soll. response.setHeader("Content-Disposition", "attachment;Filename=" + URLEncoder.encode(fileLocation+".zip", "UTF-8")); OutputStream Ausgabestream = Antwort.getOutputStream(); byte[] bytes = neues byte[2048]; int länge = 0; während ((Länge = fileInputStream.read(Bytes)) > 0) { outputStream.write(Bytes, 0, Länge); } fileInputStream.schließen(); outputStream.schließen(); } Fang (Ausnahme e) { System.out.println("[Dateidownload] Ausnahme beim Herunterladen der Datei"); e.printStackTrace(); zurückkehren; } } } Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: So installieren Sie Docker auf Ubuntu20.04 LTS
>>: So installieren Sie WSL2 Ubuntu20.04 unter Windows 10 und richten die Docker-Umgebung ein
Vorwort Aus beruflichen Gründen musste ich kürzli...
Obwohl Mac-Systeme mit PHP und Apache ausgeliefer...
Inhaltsverzeichnis Konzept-Einführung Logische Re...
Inhaltsverzeichnis Berechnete Daten initialisiere...
Was ist ein MIME-TYP? 1. Zunächst müssen wir vers...
MySQL Maximale Anzahl von Verbindungen anzeigen u...
Effektbild: Implementierungscode: <Vorlage>...
1. Klicken Sie auf den Server-Host und dann in de...
<br />Gestern habe ich beim W3C gesehen, das...
Installationsmethode für komprimierte MySQL 8.0-P...
Dieses Mal schauen wir uns ein Navigationsleisten...
Hintergrund Wenn wir uns über den MySQL-Client in...
Geschichte von ZFS Das Z-Dateisystem (ZFS) wurde ...
In diesem Artikel wird beschrieben, wie Sie Docke...
Binlog ist eine binäre Protokolldatei, die zum Au...