Javascript Sails.js下载文件到客户端
在my Sails.js(v0.12)应用程序中,我们在myApp/downloads/uuid-filename.ext中生成一个文件。然而,对于如何将文件下载到客户端,我找不到可靠的答案 我的第一个想法是将uuid传递给用户,并允许他们从URL下载它。但是,我不确定如何从客户端访问文件,即使我知道完整的文件名 第二个想法是将内容流式传输给用户,但如果没有Express.js“res.download()”函数,这似乎是不可能的。我在sails.js文档中找到了“res.attachment”。然而,这个例子毫无帮助Javascript Sails.js下载文件到客户端,javascript,http,sails.js,Javascript,Http,Sails.js,在my Sails.js(v0.12)应用程序中,我们在myApp/downloads/uuid-filename.ext中生成一个文件。然而,对于如何将文件下载到客户端,我找不到可靠的答案 我的第一个想法是将uuid传递给用户,并允许他们从URL下载它。但是,我不确定如何从客户端访问文件,即使我知道完整的文件名 第二个想法是将内容流式传输给用户,但如果没有Express.js“res.download()”函数,这似乎是不可能的。我在sails.js文档中找到了“res.attachment”
如何将文件从API(Sails.js v0.12)下载到客户端(AngularJS)您可以创建文件流并使用管道发送它 这是一个工作代码
let filename = req.param("filename");
let filepath = req.param("filepath");
let file = require('path').resolve(sails.config.appPath+'//'+filepath)
if(fs.existsSync(file))
{
res.setHeader('Content-disposition', 'attachment; filename=' + filename);
let filestream = fs.createReadStream(file);
filestream.pipe(res);
}else{
res.json({error : "File not Found"});
}
这是用sailsJS(0.12)和AngularJS测试的。我能想到的最简单的方法是在
资产文件夹中的下载文件夹中生成文件
如果您以http:///downloads/.
,如果文件存在,它将自动下载,否则将抛出404
我在资产中未找到下载文件夹,是否必须创建新文件夹是。您可以创建一个新的。