情境:
我必须将远程存储在服务器(cloudinary)中的用户文件发送到浏览器。我可以从服务器请求一个图像然后将其传输到浏览器,但它不适用于其他文件,如pdf,excel表等。
exports.fetchFile = function(req, res, next){
var fileUrl = "/" + req.params.fileUrl;
console.log(fileUrl);
async.auto({
'A': function(callback) {
var queryObj = { 'myUrl' : fileUrl};
// DB Query to retrieve user file information like url, type, etc.
UserFileCtrl.fetchUserFile(queryObj, callback);
}
}, function(err, results){
if(err) {
return res.send(500, "error");
}
var secureUrl = results['A']['secureUrl'];
var fileType = results['A']['fileType'];
// this will be "application/pdf" for pdf
res.setHeader('Content-Type', fileType);
request(secureUrl).pipe(res);
});
}
上面的代码给客户端提供了一个空的pdf文件,而如果我直接打开了cloud url,那么它就会正常运行。我很长时间不知所措但却无法从中得到一些东西。
我非常感谢你的帮助。
编辑:我也发现了类似的问题:https://gobyexample.com/signals但这对我来说也不起作用。我尝试禁用connnect-livereload,但即使这样它也无法正常工作。
问题仅发生在pdf上。所有其他格式都运行良好。