【发布时间】:2014-06-16 15:22:48
【问题描述】:
我实际上遇到了从我的 nodeJs 服务器下载文件的问题。我在其他主题上花费了很多次,但没有任何成功......
我在客户端上有一个应用程序建议下载一些文本文件。所以我把这段代码用于下载过程:
'click .downloadF': function(event) {
var $target = $(event.target);
var file = $target.model();
var download = $.get('/files/download'+'?'+Math.random(),
{id:file.id});
},
到这里...非常简单。 在我的 nodeJS 方面,我做到了:
app.get('/files/download', function(req, res) {
var filePath = metrology.DownloadFile(req.query.id);
var filename = path.basename(filePath);
var mimetype = mime.lookup(filePath);
res.setHeader("Content-disposition", "attachment; filename=Metrology.csv");
res.setHeader('Content-type', mimetype);
var filestream = fs.createReadStream(filePath);
filestream.pipe(res);
});
在响应中,我得到了正确的文本数据,并且标题被正确设置为附件和文件类型。 回应:
连接保持活动 内容处置附件; 文件名=计量学.csv 内容类型 text/csv 日期 2014 年 6 月 16 日星期一 15:17:25 GMT Transfer-Encoding chunked X-Powered-By Express
内容:
NoPiece;NoRepetition;Mesure;Resultat; 1;1;1;3; 1;1;2;2; 1;1;3;2; 1;1;4;2; 2;1;1;2; 2;1;2;2; 2;1;3;2; 2;1;4;2;
现在...如何打开一个对话窗口将这些数据保存到指定的文件路径中???
我实际上是在 Mozilla 上调试,但也必须使用 IE9/11。
非常感谢您的帮助、想法、建议和(也许)解决方案 :-)
【问题讨论】:
-
抱歉,我在任何地方都看到了相同的信息:需要将 Content-Disposition 定义为附件...但在我的情况下,我收到了数据,但没有打开对话框来保存文件.. . 请帮忙 :-/
标签: javascript node.js download