Express.js サーバーから完全なファイル名と拡張子を使用してファイルをダウンロードする
Node.js では、ダウンロード用のファイルを提供するのは簡単ですが、正しい名前とファイル拡張子を持っていることを確認するには、少し長くなる可能性があります。トリッキーです。
古いアプローチ:
Express.js を使用してファイルのダウンロード ルートを記述する場合、ファイルを提供するには Content-Disposition ヘッダーを明示的に設定する必要があります。名前とファイル拡張子。さらに、処理を改善するために Content-Length ヘッダーと Content-Type ヘッダーを含めることができます:
app.get('/download', function(req, res) { const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`; res.setHeader('Content-disposition', 'attachment; filename=dramaticpenguin.MOV'); res.write(fs.readFileSync(file, 'binary')); res.end(); });
Express.js Helper:
Express.js nowファイルのダウンロードを簡素化する download というヘルパー メソッドが含まれていますプロセス:
app.get('/download', function(req, res) { const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`; res.download(file); // Sets 'Content-Disposition' and sends the file });
機能強化:
より高度な機能については、パスや MIME などのサードパーティ ライブラリを利用して、ファイル名、ファイル拡張子、 MIME タイプ:
const path = require('path'); const mime = require('mime'); app.get('/download', function(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); res.download(file); });
このアプローチにより、ダウンロードされたファイルの場所に関係なく、常に正しい名前とファイル拡張子が付けられます。サーバー上で。
以上がExpress.js サーバーから正しいファイル名と拡張子を持つファイルをダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。