首页 > web前端 > js教程 > 如何使用 Express.js 从 Node.js 服务器下载文件?

如何使用 Express.js 从 Node.js 服务器下载文件?

Linda Hamilton
发布: 2024-11-27 19:26:11
原创
561 人浏览过

How to Download Files from a Node.js Server Using Express.js?

Downloading Files from Node.js Server Using Express

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板