将XMLHttpRequest中收到的数据保存到文件中

时间:2014-06-16 15:22:49

标签: javascript node.js download

我实际上遇到了来自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。

非常感谢您的帮助,想法,建议和(可能)解决方案: - )

1 个答案:

答案 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;
  },