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
Kurzanleitung Das Foreman-Installationsprogramm i...
Grammatikregeln SELECT Spaltenname(n) FROM Tabell...
Vorwort Der Autor war schon immer der Meinung, da...
Inhaltsverzeichnis 1. So erhalten Sie Elemente Ho...
Heute ist mir ein Problem aufgefallen: Der Inhalt ...
Vorwort Docker erfreut sich seit zwei Jahren groß...
Kurzes Tutorial Dies ist ein CSS3-Farbfortschritt...
Das Endergebnis sieht so aus, ist es nicht süß … ...
Ich habe vor Kurzem eine visuelle Operationsplatt...
Überblick Was das aktuelle Standardnetzwerk von D...
Tatsächlich ist XHTML 1.0 in zwei Typen unterteil...
Inhaltsverzeichnis Verzeichnisstruktur bin-Verzei...
Teilen Sie die coole zufällige QR-Code-Verifizier...
1. Einführung in Macvlan Vor dem Aufkommen von Ma...
In diesem Artikel wird hauptsächlich die Methode ...