ファイルへのnodejs blob

WBOY
リリース: 2023-05-11 17:03:37
オリジナル
2565 人が閲覧しました

フロントエンド開発では、Blob オブジェクトをファイルに変換する必要が生じる場合があります。 BLOB は、任意のバイナリ データを表すことができる Web API のオブジェクト タイプです。ファイルは、ファイル名、ファイル タイプ、ファイル サイズなどの属性を持つエンティティです。アップロード、保存、その他の操作のために、ブラウザを通じて Blob オブジェクトをファイル タイプに変換する必要があることがよくあります。

Node.js 環境では、Node の組み込みモジュール fs を使用してファイル操作を実行し、Buffer を使用してバイナリ データを処理できます。したがって、Blob オブジェクトをバッファーに変換することで、Blob オブジェクトをファイルに変換し、fs モジュールを使用してバッファーをファイルに書き込むことができます。

具体的な実装手順は次のとおりです。

  1. Blob オブジェクトを取得します。次のコードを通じて Blob オブジェクトを取得できます。
let blob = new Blob([arrayBuffer], { type: 'image/png' });
ログイン後にコピー

ここでは、バイナリ データを含む Blob オブジェクトが作成されます。

  1. BLOB をバッファーに変換します。 Node.js のバッファー モジュールを使用して、Blob オブジェクトをバッファーに変換できます。具体的なコードは次のとおりです。
const buffer = Buffer.from(await blob.arrayBuffer());
ログイン後にコピー

Blob の arrayBuffer() メソッドは、バイナリ データを取得し、それをバッファに変換するために使用されます。

  1. ファイルに書き込みます。 Node.js の fs モジュールを使用すると、バッファをファイルに書き込むことができます。具体的なコードは次のとおりです:
fs.writeFile('test.png', buffer, (err) => {
  if (err) throw err;
  console.log('The file has been saved!');
});
ログイン後にコピー

ここでは、バッファが「test.png」という名前のファイルに書き込まれます。書いた場合 ファイルに誤りがある場合は例外がスローされ、そうでない場合はコンソールに「ファイルは保存されました!」と出力されます。

完全なコードは次のとおりです:

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');
ログイン後にコピー

このコードは、リモート サーバー上の画像ファイルをローカルにダウンロードし、ファイル「test.png」として保存します。

概要:

この記事では、Blob オブジェクトをファイルに変換する方法を紹介します。Node.js 環境では、Buffer モジュールと fs モジュールを使用してこの機能を実現できます。このメソッドは、フロントエンドの Blob オブジェクトをファイルに変換する必要がある場合、またはバイナリ データを処理して Node.js 環境にファイルとして保存する必要がある場合に非常に便利です。

以上がファイルへのnodejs blobの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート