JavaScript Datei erstellen und speichern Save

Harshit Jindal 12 Oktober 2023
JavaScript Datei erstellen und speichern Save

In diesem Tutorial erfahren Sie, wie Sie eine Datei in JavaScript erstellen und speichern.

Es ist einfach, Dateien zu erstellen und auf der Serverseite von NodeJS zu speichern, aber auf der Clientseite gibt es nur wenige Möglichkeiten, dies zu tun. In diesem Tutorial schreiben wir eine benutzerdefinierte Funktion, die uns hilft, Dateien mit Daten zu erstellen und diese dann zu speichern. In modernen Browsern erhalten wir eine Funktion namens msSaveOrOpenBlob, die uns beim Speichern einer Datei hilft. In älteren Browsern generieren wir jedoch zuerst einen Link zur Datei und laden sie dann herunter, indem wir das Attribut download auf dem Anker-Tag hinzufügen.

function downloadFiles(data, file_name, file_type) {
  var file = new Blob([data], {type: file_type});
  if (window.navigator.msSaveOrOpenBlob)
    window.navigator.msSaveOrOpenBlob(file, file_name);
  else {
    var a = document.createElement('a'), url = URL.createObjectURL(file);
    a.href = url;
    a.download = file_name;
    document.body.appendChild(a);
    a.click();
    setTimeout(function() {
      document.body.removeChild(a);
      window.URL.revokeObjectURL(url);
    }, 0);
  }
}

In der obigen Funktion prüfen wir, ob der Browser msSaveOrOpenBlob unterstützt, und wenn es gefunden wird, verwenden wir es, um die Datei zu speichern. Andernfalls erstellen wir ein Anker-Tag, das auf die erstellte Datei verweist. Wir fügen das Download-Attribut zum Anker-Tag hinzu und hängen dieses Tag an den Textkörper des Dokuments an. Wir verwenden JavaScript, um darauf zu klicken, was den Download auslöst und auf diese Weise speichern wir die Datei. Anschließend entfernen wir dieses Anker-Tag aus dem Text und widerrufen die erstellte URL.

Harshit Jindal avatar Harshit Jindal avatar

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.

LinkedIn