Node.js 使用express.js在浏览器中错误下载PDF文件(已损坏)

Node.js 使用express.js在浏览器中错误下载PDF文件(已损坏),node.js,file-upload,express,Node.js,File Upload,Express,我使用下面的代码片段下载pdf和其他类型的文件 exports.getFile = function(req , res , next){ var file = req.params.file , path = 'login/files/'+file; res.download(path); }; 文本文件已正确下载,但pdf未正确下载(它已下载,但已损坏pdf文件)。我已看到pdf文件已正确上载到服务器(服务器上未损坏。但下载会损坏)。我想不出这个问题。请告诉我如何解决这个问

我使用下面的代码片段下载pdf和其他类型的文件

exports.getFile = function(req , res , next){
  var file = req.params.file
    , path = 'login/files/'+file;
  res.download(path);
};

文本文件已正确下载,但pdf未正确下载(它已下载,但已损坏pdf文件)。我已看到pdf文件已正确上载到服务器(服务器上未损坏。但下载会损坏)。我想不出这个问题。请告诉我如何解决这个问题?提前感谢。

将响应标题设置为:

exports.getFile = function(req , res , next){
  var file = req.params.file
    , path = 'login/files/'+file;
  res.setHeader('Content-Type', 'application/pdf');
  res.download(path);
};

您必须设置
res.setHeader('Content-Type','application/pdf')我想。我已经这样做了。但没有解决此问题。您可以尝试在没有PDF文件的情况下重现此问题:传输长度相等的文本文件和/或使用二进制文件比较来检查差异。请提供一个完整的示例——不清楚下一步是什么,以及如何调用getFile?通过简单地链接到pdf,我也遇到了类似的问题。有些PDF可以工作,但有些不能。它在上传过程中被压缩了吗?要确定这是原因,请获取下载文件的副本,然后手动将文件扩展名更改为.gz。然后试着打开它。