这是我现在的工作流程:
在按钮单击事件中,我将搜索结果导出到 .csv 文件,该文件保存到服务器。保存文件后,我想将其发送到浏览器下载。使用这个问题How to handle conditional file downloads in meteor.js,我创建了一个在保存文件的方法返回后调用的方法。这是那个方法:
exportFiles: function(file_to_export) {
console.log("to export = "+file_to_export);
Meteor.Router.add('/export', 'GET', function() {
console.log('send '+file_to_export+' to browser');
return [200,
{
'Content-type': 'text/plain',
'Content-Disposition': "attachment; filename=" + this.request.query.file
}, fs.readFileSync( save_path + this.request.query.file )];
});
}
但是,我的问题是如何调用该路由?使用.Router.to('/export?file=filename.ext')
不起作用,并导致用户离开当前页面。我希望这对用户来说是无缝的,我不希望他们知道他们正在被重定向。在有人问之前,save_path
在方法之外声明了,所以它确实存在。