我实际上遇到了来自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);
});
在响应中,我得到了正确的文本数据,标题被正确设置为附件和文件类型。 回复:
连接保持活着 内容 - 处置附件; 文件名= Metrology.csv 内容类型文本/ 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。
非常感谢您的帮助,想法,建议和(可能)解决方案: - )
答案 0 :(得分:0)
jQuery .get
函数是否必要? window.location.href
是否实现了目标?
'click .downloadF': function(event) {
var $target = $(event.target);
var file = $target.model();
window.location.href='/files/download'+'?'+Math.random()+'&id='+file.id;
},