2016-04-27 50 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