In diesem Artikelbeispiel wird der spezifische Code von Vue zur Implementierung von Datei-Upload- und Download-Funktionen zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt 1. ein Tag-Download-Attribut In H5 wird dem A-Tag ein Download-Attribut hinzugefügt, um die Datei direkt herunterzuladen, und der Dateiname ist der Dateiname des Download-Attributs.
2. URL.createObjectURL Die Methode URL.createObjectURL() erstellt eine URL, die auf das Parameterobjekt basierend auf den übergebenen Parametern verweist. Diese URL existiert nur in dem Dokument, in dem sie erstellt wird. Die neue Objekt-URL verweist auf das ausgeführte Dateiobjekt oder Blob-Objekt. Ein File-Objekt ist eine Datei. Wenn ich beispielsweise zum Hochladen von Dateien den Tag input type="file" verwende, ist jede darin enthaltene Datei ein File-Objekt. Blob-Objekte sind binäre Daten. Beispielsweise ist das von new Blob() erstellte Objekt ein Blob-Objekt. Wenn beispielsweise in XMLHttpRequest der responseType als blob angegeben ist, ist der Rückgabewert ebenfalls ein Blob-Objekt. let URL = Fenster.URL || Fenster.webkitURL; let downloadUrl = URL.createObjectURL(blob || Datei); 3. URL.revokeObjectURL Die Methode URL.revokeObjectURL() gibt eine von URL.createObjectURL() erstellte Objekt-URL frei. Wenn das Objekt nicht mehr benötigt wird, muss es freigegeben werden. Nach der Freigabe verweist die Objekt-URL nicht mehr auf die angegebene Datei. downloadUrl && URL.revokeObjectURL(downloadUrl); 4. Dateien mit Vue.js hochladen und herunterladen <Vorlage> <div Klasse="btn-box"> <h3>Dateiupload:</h3> <input Klasse="file-input" Typ="Datei" @change="getFile($event)" /> <el-button type="primary" @click="upload">Datei hochladen (POST)</el-button> <h3>Dateidownload:</h3> <el-button type="primary" @click="downloadLink">Laden Sie die verknüpfte Datei herunter (window.open)</el-button> <el-button type="primary" @click="downloadBlobByGet">Binärer Stream-Download (GET)</el-button> <el-button type="primary" @click="downloadBlobByPost">Binärer Stream-Download (POST)</el-button> </div> </Vorlage> <Skript> Axios von „Axios“ importieren Standard exportieren { Name: "attendPoint", Daten() { zurückkehren {, Datei: null, Dateiname: "test.xlsx" } }, Methoden: { // Datei auswählen getFile(event) { diese.Datei = Ereignis.Ziel.Dateien[0]; }, // Datei hochladen (POST) hochladen() { let url = "http://localhost:3000/upload/test"; let formData = neue FormData(); formData.append("name", "zhangsan"); formData.append("Alter", "18"); formData.append("Datei", diese.Datei); let konfiguration = { Überschriften: { "Inhaltstyp": "multipart/Formulardaten" } } axios.post(url, formData, config).then((res) => { dieser.Dateiname = res.data.downloadUrl; this.$message.success("Upload erfolgreich!"); }).catch(() => { this.$message.error("Bitte laden Sie zuerst die Datei hoch!"); }) }, // Lade die Datei mit dem Link herunter (window.open) downloadLink() { wenn (dieser.Dateiname) { Fenster.öffnen("http://localhost:3000/download/test?fileName=" + dieser.fileName); } }, //Binärer Stream herunterladen (GET) asynchroner Download von BlobByGet() { let urlGet = "http://localhost:3000/download/test?fileName=" + dieser.fileName; Lassen Sie fileData = await axios.get(urlGet, { responseType: "blob" }); let URL = Fenster.URL || Fenster.webkitURL; let downloadUrl = URL.createObjectURL(fileData.data); sei a = document.createElement("a"); a.href = Download-URL; a.download = this.fileName; //Dateiname nach dem Download a.click(); a = null; downloadUrl && URL.revokeObjectURL(downloadUrl); }, //Binärer Stream-Download (POST) asynchroner Download von BlobByPost() { let urlPost = "http://localhost:3000/download/post/test"; lass fileData = warte auf axios({ Methode: "post", url: urlPost, // Anfrageadresse data: { fileName: this.fileName }, // Parameter responseType: "blob" // gibt den vom Server zurückgegebenen Datentyp an }) let URL = Fenster.URL || Fenster.webkitURL; let downloadUrl = URL.createObjectURL(fileData.data); sei a = document.createElement("a"); a.download = dieser.Dateiname; a.href = Download-URL; ein.Klick(); a = null; downloadUrl && URL.revokeObjectURL(downloadUrl); }, }, } </Skript> <Stilbereich> .btn-box { Polsterung: 20px; } .el-Schaltfläche, Eingabe { maximale Breite: Inhalt anpassen; Anzeige: Block; Rand: 20px; } </Stil> 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:
|
<<: Detaillierte Erklärung der Verwendung und Funktion des MySQL-Cursors
>>: Tutorial zur Installation und Konfiguration der Centos7-MySQL-Datenbank
Dieses Tutorial enthält das Installationstutorial...
Entsprechend den wichtigsten Websites und persönl...
Diese Datenbankabfrageanweisung ist eine von 50 D...
Die Beispiele in diesem Artikel sind alle in klei...
Die Frage wird hier zitiert: https://www.zhihu.co...
Zu den wichtigsten Funktionen der InnoDB-Speicher...
Die Wirkung ist wie folgt: analysieren 1. Hier se...
Dies ist eine Interviewfrage, die die Verwendung ...
Eine Umgebung Installieren Sie VMware Tools auf C...
In unserem Leben, bei der Arbeit und beim Studium ...
Das Document Object Model (DOM) ist eine Plattfor...
1. Führen Sie Schriftarten aus, öffnen Sie den Sc...
Diese Frage stammt aus einer Nachricht auf Nugget...
Inhaltsverzeichnis Vorwort Lösung: Schritt 1 Schr...
Inhaltsverzeichnis Erstellen Sie ein Vue + TS-Pro...