javascript - Express 和 request 如何代理远程图片?
習慣沉默
習慣沉默 2017-05-16 13:45:34
0
3
547

使用 Node 的 Express 结合 request 来代理远程图片,但是返回的内容和原图片的内容有区别,是乱码,但是乱的不一致。
关键代码:

var FurionImgHandler = function (req, res) { var url = req.url.split('/fimg/')[1]; var options = { url: url }; function callback (error, response, body) { if (!error && response.statusCode === 200) { var contentType = response.headers['content-type']; response.setEncoding('binary'); res.set('Content-Type', contentType); res.send(body); } } request.get(options, callback); };

原图片:

代理后返回的图片:

習慣沉默
習慣沉默

全部回复 (3)
習慣沉默

加了encoding: null就可以了

var options = { url: url, encoding: null };
    阿神

    应该是传的Blob对象,你试试转化一下。

      大家讲道理

      图片如果不需要存储或者其它操作,直接通过pipe传递给response不行吗?

      http.get(options, (response) => { response.pipe(res); })

      soonfy

        最新下载
        更多>
        网站特效
        网站源码
        网站素材
        前端模板
        关于我们 免责声明 Sitemap
        PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!