Node.jsを使用してバッファからファイルをダウンロードする方法


  1. ファイルのバッファへの変換: ファイルをバッファに変換するには、fsモジュールのreadFileSyncまたはreadFileメソッドを使用します。以下はreadFileSyncを使用した例です。

    const fs = require('fs');
    const filePath = 'path/to/file.jpg';
    const fileBuffer = fs.readFileSync(filePath);
  2. ファイルのダウンロード: バッファからファイルをダウンロードするには、HTTPレスポンスを作成し、responseオブジェクトのwriteメソッドを使用してバッファを書き込みます。以下はExpressフレームワークを使用した例です。

    const express = require('express');
    const app = express();
    app.get('/download', (req, res) => {
     const fileBuffer = ... ; // ファイルのバッファ
     res.setHeader('Content-Type', 'application/octet-stream');
     res.setHeader('Content-Disposition', 'attachment; filename="file.jpg"');
     res.write(fileBuffer);
     res.end();
    });
    app.listen(3000, () => {
     console.log('Server started on port 3000');
    });

    上記の例では、Content-Typeヘッダーを設定してバイナリデータをダウンロードすることを示し、Content-Dispositionヘッダーを使用してダウンロード時のファイル名を指定しています。

これらのコード例を使用すると、Node.jsを介してバッファからファイルをダウンロードすることができます。適切なパスとファイル名を使用して、実際のファイルに合わせてコードを調整してください。