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
Inhaltsverzeichnis 1. So funktioniert das Bootstr...
1. Bearbeiten Sie die Datei docker.service vi /us...
mysql kopiert die Dateien im Datenverzeichnis, um...
Vorwort: Das Jahr neigt sich dem Ende zu. Ist es ...
Inhaltsverzeichnis 1. Laden Sie den Tomcat-Code h...
Als ich vor einiger Zeit an einer kleinen Funktio...
Inhaltsverzeichnis 1. Implementieren Sie die Meth...
In der Praxis stoßen wir häufig auf ein Problem: ...
In diesem Artikel finden Sie das Installations-Tu...
Wenn Sie an einem gemeinsam genutzten System arbe...
Inhaltsverzeichnis 1. Zugeordnete Typen 2. Mappin...
Win10-Installation (überspringen, falls bereits i...
Auf HTML-Seiten verfügen visuelle Elemente wie Sc...
Inhaltsverzeichnis 10.000 Daten gingen im Hinterg...
Für gleichmäßig verteilte Layouts verwenden wir i...