Express を使用して NodeJS サーバーからファイルをダウンロードする
NodeJS サーバー上の Web ページにアクセスするとき、NodeJS サーバーに保存されているファイルをダウンロードする必要がある場合があります。サーバー。この記事では、ExpressJS フレームワークを使用してファイルをダウンロードするプロセスについて説明します。
ExpressJS ファイルのダウンロード
ファイルのダウンロードを開始するには、 res.download() を使用します。 ExpressJSが提供するメソッド。このメソッドは、ファイルの添付と処理に必要な HTTP ヘッダーを自動的に設定します。
デモ:
app.get('/download', (req, res) => { res.download(`${__dirname}/upload-folder/dramaticpenguin.MOV`); });
ファイル名とタイプを含める
Byデフォルトでは、ダウンロードされたファイルの名前は「download」です。カスタム ファイル名とタイプを指定するには、追加の HTTP ヘッダーを設定する必要があります。
包括的な実装
ここでは、MIME ライブラリを使用して、ファイルの MIME タイプ動的:
const path = require('path'); const mime = require('mime'); const fs = require('fs'); app.get('/download', (req, res) => { const file = __dirname + '/upload-folder/dramaticpenguin.MOV'; const filename = path.basename(file); const mimetype = mime.getType(file); res.setHeader('Content-disposition', `attachment; filename=${filename}`); res.setHeader('Content-type', mimetype); const filestream = fs.createReadStream(file); filestream.pipe(res); });
res.write() の使用
res.write() アプローチを使用する場合は、Content-Disposition ヘッダーと Content-Length ヘッダーを設定します。まず:
res.setHeader('Content-disposition', 'attachment; filename=dramaticpenguin.MOV'); res.setHeader('Content-Length', file.length); res.write(file, 'binary');
ファイル送信には同期メソッドではなく一貫して readStream を使用することを忘れないでください。最適なパフォーマンスを実現します。
以上がExpressJS を使用して NodeJS サーバーからファイルをダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。