node.js表示app res.download(路径,名称)在下载时没有给出正确的名称

时间:2016-04-27 19:13:48

标签: javascript node.js google-chrome express 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 =”参数是path(这通常出现在浏览器对话框中)。使用filename参数覆盖此默认值。   当错误ocurrs或transfer完成时,该方法调用可选的回调函数fn。此方法使用res.sendFile()来传输文件。

     

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

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

1 个答案:

答案 0 :(得分:0)

也许尝试像

这样的东西
res.setHeader('Content-disposition', 'attachment; filename=' + filename);

在致电res.download()之前?