从服务器请求文件(image / pdf / excel表)时发出问题,然后管道到res

时间:2016-05-30 03:46:22

标签: node.js express request cloudinary

情境:

我必须将远程存储在服务器(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上。所有其他格式都运行良好。

0 个答案:

没有答案