2016-04-27 122 views
-1

给出正确的名称让我们先从我得到了什么:的Node.js应用快递res.download(路径名)不会在下载

core.app.get('/download/:key', function (req, res) { 
    require("./../../module/fileupload.js").download(req.params.key, function(file, filename) { 
     console.log(file + " - " + filename); 
     if (file != null) res.download(file, filename); 
     else res.json({success: false, error: "Unknown download key"}); 
    }); 
}); 

我得到这个控制台输出这意味着它的工作原理:

uploads\477559c2-1350-4608-b100-40017b13f9e0 - testfile.png 

但是,当我尝试下载它,它给了我这样的:Image

及文档中,它说这个:

将路径中的文件作为“附件”传输。通常,浏览器会提示用户下载。默认情况下,Content-Disposition头文件“filename =”参数是路径(通常出现在浏览器对话框中)。用filename参数覆盖这个默认值。 当错误发生或传输完成时,该方法会调用可选的回调函数fn。此方法使用res.sendFile()传输文件。

res.download('/ report-12345.pdf','report.pdf');

为什么这不起作用的原因?

回答

0

也许你可以试试

res.setHeader('Content-disposition', 'attachment; filename=' + filename); 

调用res.download()之前?

+0

仍然是相同的结果,再加上这是'res.download()'的第二个参数的作用 – WhatIsMyName