Problem:
如何从存储在服务器中的某个文件中,通过访问 Node.js 服务器中的页面将文件下载到本地机器?
解决方案:
使用 Express.js 提供的辅助函数可以简化这一过程:
app.get('/download', function(req, res){ const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`; res.download(file); // Set disposition and send it. });
旧版解决方案:
为了让浏览器识别文件名称,需要使用其他 HTTP 头指定更多信息:
res.setHeader('Content-disposition', 'attachment; filename=dramaticpenguin.MOV');
还可以发送 MIME 类型,例如:
res.setHeader('Content-type', 'video/quicktime');
以下是更详细的示例代码:
var path = require('path'); var mime = require('mime'); var fs = require('fs'); app.get('/download', function(req, res){ var file = __dirname + '/upload-folder/dramaticpenguin.MOV'; var filename = path.basename(file); var mimetype = mime.getType(file); res.setHeader('Content-disposition', 'attachment; filename=' + filename); res.setHeader('Content-type', mimetype); var filestream = fs.createReadStream(file); filestream.pipe(res); });
请注意,此示例代码使用了流来读取文件,这是 Node.js 中首选的异步方法。
以上是如何使用 Express.js 从 Node.js 服务器下载文件?的详细内容。更多信息请关注PHP中文网其他相关文章!