Heim > Web-Frontend > js-Tutorial > Wie kann ich Blob-Dateinamen beim direkten Herunterladen in JavaScript anpassen?

Wie kann ich Blob-Dateinamen beim direkten Herunterladen in JavaScript anpassen?

DDD
Freigeben: 2024-12-26 22:38:10
Original
262 Leute haben es durchsucht

How Can I Customize Blob Filenames When Downloading Directly in JavaScript?

Anpassen des Blob-Dateinamens für direkte Downloads in JavaScript

Einführung

Bei Verwendung von window.location Um das Herunterladen einer Blob-Datei in JavaScript zu erzwingen, wird der Name der heruntergeladenen Datei automatisch generiert. Um diesen Dateinamen anzupassen, sind zusätzliche Schritte erforderlich.

Lösung mit FileSaver.js-Trick

Eine Problemumgehung besteht darin, eine Technik zu verwenden, die der von FileSaver.js verwendeten ähnelt:

  1. Erstellen Sie ein verstecktes Tag.
  2. Weisen Sie die URL des Blobs dem href-Attribut zu.
  3. Legen Sie den gewünschten Dateinamen mithilfe des Download-Attributs fest.
  4. Initiieren Sie den Download, indem Sie auf das Symbol klicken. tag.

Vereinfachtes Beispiel

function saveData(data, fileName) {
  var json = JSON.stringify(data),
      blob = new Blob([json], {type: "octet/stream"}),
      url = window.URL.createObjectURL(blob);
  var a = document.createElement("a");
  document.body.appendChild(a);
  a.style = "display: none";
  a.href = url;
  a.download = fileName;
  a.click();
  window.URL.revokeObjectURL(url);
}

var data = { x: 42, s: "hello, world", d: new Date() },
    fileName = "my-download.json";

saveData(data, fileName);
Nach dem Login kopieren

Verwendung von FileSaver.js

Während die obige Methode dies kann funktioniert, wird empfohlen, die robustere FileSaver.js-Bibliothek zum Speichern von Dateien zu verwenden JavaScript:

import { saveAs } from 'file-saver';

var json = JSON.stringify(data),
    filename = "my-download.json";

var blob = new Blob([json], {type: "octet/stream"});
saveAs(blob, filename);
Nach dem Login kopieren

Überlegungen

  • Ältere Browser unterstützen das Download-Attribut möglicherweise nicht, da es sich um eine HTML5-Funktion handelt.
  • Sicher Dateiformate gelten möglicherweise als unsicher und blockieren den Download. Das Speichern von JSON-Dateien mit der Erweiterung .txt kann dieses Problem beheben.

Das obige ist der detaillierte Inhalt vonWie kann ich Blob-Dateinamen beim direkten Herunterladen in JavaScript anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage