Maison > interface Web > Questions et réponses frontales > blob nodejs dans un fichier

blob nodejs dans un fichier

WBOY
Libérer: 2023-05-11 17:03:37
original
2563 Les gens l'ont consulté

Dans le développement front-end, nous pouvons rencontrer le besoin de convertir des objets Blob en fichiers. Blob est un type d'objet dans l'API Web qui peut représenter des données binaires arbitraires. Un fichier est une entité avec des attributs tels que le nom de fichier, le type de fichier, la taille du fichier, etc. Nous devons souvent convertir les objets Blob en types de fichiers via le navigateur pour le téléchargement, l'enregistrement et d'autres opérations.

Dans l'environnement Node.js, nous pouvons utiliser le module fs intégré de Node pour effectuer des opérations sur les fichiers, et nous pouvons utiliser Buffer pour traiter les données binaires. Par conséquent, nous pouvons convertir l'objet Blob en fichier en convertissant l'objet Blob en Buffer, puis utiliser le module fs pour écrire le Buffer dans le fichier.

Les étapes spécifiques de mise en œuvre sont les suivantes :

  1. Obtenez l'objet Blob. Nous pouvons obtenir l'objet Blob via le code suivant :
let blob = new Blob([arrayBuffer], { type: 'image/png' });
Copier après la connexion

Un objet Blob contenant des données binaires est créé ici.

  1. Convertir un blob en tampon. Nous pouvons convertir les objets Blob en Buffers à l'aide du module buffer de Node.js. Le code spécifique est le suivant :
const buffer = Buffer.from(await blob.arrayBuffer());
Copier après la connexion

La méthode arrayBuffer() de Blob est utilisée ici pour obtenir des données binaires puis les convertir en Buffer.

  1. Écrire dans un dossier. En utilisant le module fs dans Node.js, nous pouvons écrire le Buffer dans un fichier. Le code spécifique est le suivant :
fs.writeFile('test.png', buffer, (err) => {
  if (err) throw err;
  console.log('The file has been saved!');
});
Copier après la connexion

Ici, le Buffer est écrit dans un fichier nommé "test. png", S'il y a une erreur lors de l'écriture du fichier, une exception sera levée, sinon "Le fichier a été enregistré !" sera affiché sur la console.

Le code complet est le suivant :

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');
Copier après la connexion

Ce code permet de télécharger le fichier image sur le serveur distant vers le local et de l'enregistrer sous le fichier "test.png".

Résumé :

Cet article présente comment convertir des objets Blob en fichiers Dans l'environnement Node.js, nous pouvons utiliser les modules Buffer et fs pour réaliser cette fonction. Cette méthode est très utile lorsque nous devons convertir l'objet Blob du front-end en fichier, ou lorsque nous devons traiter des données binaires et les enregistrer sous forme de fichier dans l'environnement Node.js.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal