使用Express 從NodeJS 伺服器下載檔案
造訪NodeJS 伺服器上的網頁時,您可能會遇到需要下載伺服器上的文件的情況伺服器。本文將引導您完成使用 ExpressJS 框架下載檔案的流程。
ExpressJS 檔案下載
要啟動檔案下載,請使用 res.download() ExpressJS提供的方法。此方法會自動設定檔案附件和處置所需的 HTTP 標頭。
示範:
app.get('/download', (req, res) => { res.download(`${__dirname}/upload-folder/dramaticpenguin.MOV`); });
包含檔案名稱和類型
透過預設情況下,下載的檔案名稱為「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中文網其他相關文章!