使用 Express 从 NodeJS 服务器下载文件
访问 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中文网其他相关文章!