gpt4 book ai didi

javascript - 使用请求模块下载文件并将结果传递给meteor.js 中的响应

转载 作者:行者123 更新时间:2023-12-03 10:27:38 25 4
gpt4 key购买 nike

我想下载文件而不保存在磁盘上并将文件内容传递给响应。我真的想以流的形式获取文件,然后将其传递给响应,客户端可以下载文件。例如,使用下面的伪代码(使用 iron-routermeteorrequest ):

Router.route('/file/download', function() {
var res = this.response;
var query = this.params.query;
var id = query.id;

var request = Meteor.npmRequire('request');
var future = new (Npm.require('fibers/future'))();

request('http://myFileHosting.com/files/download?id='+ id, function (error, response, fileContent) {
if (!error && response.statusCode == 200) {
future.return(fileContent);
}
else
{
future.throw(error);
console.log(error);
}
});

var fileContent = future.wait();

res.end(fileContent);
}, { where: 'server' });

如何做到这一点?

无需下载到磁盘即可传递文件以即时响应的真正解决方案是什么?

最佳答案

试试这个。

Router.route('/file/download', function() {
var self = this;
var res = this.response;
var query = this.params.query;
var id = query.id;

var request = Meteor.npmRequire('request');
var future = new (Npm.require('fibers/future'))();

request('http://myFileHosting.com/files/download?id='+ id, function (error, response, fileContent) {
if (!error && response.statusCode == 200) {
self.response.statusCode = 200;
self.response.setHeader("Content-Type", response.headers['content-type']);
self.response.setHeader("Content-disposition", response.headers['content-disposition']);
self.response.end(fileContent);
future['return'](true);
}
else
{
future.throw(error);
console.log(error);
}
});

return future.wait();
}, { where: 'server' });

关于javascript - 使用请求模块下载文件并将结果传递给meteor.js 中的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29346083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com