Heim >Web-Frontend >Front-End-Fragen und Antworten >Nodejs-Blob in Datei umwandeln

Nodejs-Blob in Datei umwandeln

WBOY
WBOYOriginal
2023-05-11 17:03:372527Durchsuche

Bei der Front-End-Entwicklung müssen wir möglicherweise Blob-Objekte in Dateien konvertieren. Blob ist ein Objekttyp in der Web-API, der beliebige Binärdaten darstellen kann. Eine Datei ist eine Entität mit Attributen wie Dateiname, Dateityp, Dateigröße usw. Wir müssen Blob-Objekte häufig über den Browser in Dateitypen konvertieren, um sie hochzuladen, zu speichern und für andere Vorgänge.

In der Node.js-Umgebung können wir das integrierte Modul fs von Node verwenden, um Dateioperationen auszuführen, und wir können Buffer verwenden, um Binärdaten zu verarbeiten. Daher können wir das Blob-Objekt in eine Datei konvertieren, indem wir das Blob-Objekt in einen Puffer konvertieren und dann das fs-Modul verwenden, um den Puffer in die Datei zu schreiben.

Die spezifischen Implementierungsschritte lauten wie folgt:

  1. Holen Sie sich das Blob-Objekt. Wir können das Blob-Objekt über den folgenden Code abrufen:
let blob = new Blob([arrayBuffer], { type: 'image/png' });

Hier wird ein Blob-Objekt erstellt, das Binärdaten enthält.

  1. Blob in Puffer umwandeln. Mit Hilfe des Puffermoduls in Node.js können wir Blob-Objekte in Puffer konvertieren. Der spezifische Code lautet wie folgt:
const buffer = Buffer.from(await blob.arrayBuffer());

Die arrayBuffer()-Methode von Blob wird hier verwendet, um Binärdaten abzurufen und sie dann in einen Puffer umzuwandeln.

  1. In Datei schreiben. Mit dem fs-Modul in Node.js können wir den Puffer in eine Datei schreiben. Der spezifische Code lautet wie folgt:
fs.writeFile('test.png', buffer, (err) => {
  if (err) throw err;
  console.log('The file has been saved!');
});

Hier wird der Puffer in eine Datei mit dem Namen „test“ geschrieben. png“, Tritt beim Schreiben der Datei ein Fehler auf, wird eine Ausnahme ausgelöst, andernfalls wird „Die Datei wurde gespeichert!“ auf der Konsole ausgegeben.

Der vollständige Code lautet wie folgt:

const fs = require('fs');
const fetch = require('node-fetch');

async function downloadFile(url) {
  const res = await fetch(url);
  const blob = await res.blob();
  const buffer = Buffer.from(await blob.arrayBuffer());
  fs.writeFile('test.png', buffer, (err) => {
    if (err) throw err;
    console.log('The file has been saved!');
  });
}

downloadFile('https://www.example.com/test.png');

Dieser Code kann die Bilddatei auf dem Remote-Server auf den lokalen Server herunterladen und als Datei „test.png“ speichern.

Zusammenfassung:

In diesem Artikel wird beschrieben, wie Blob-Objekte in Dateien konvertiert werden. In der Node.js-Umgebung können wir die Module Buffer und fs verwenden, um diese Funktion zu erreichen. Diese Methode ist sehr nützlich, wenn wir das Blob-Objekt im Frontend in eine Datei konvertieren müssen oder wenn wir Binärdaten verarbeiten und als Datei in der Node.js-Umgebung speichern müssen.

Das obige ist der detaillierte Inhalt vonNodejs-Blob in Datei umwandeln. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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
Vorheriger Artikel:NodeJS-Puffer zu StringNächster Artikel:NodeJS-Puffer zu String