javascript - Express 和 request 如何代理远程图片?
问题描述
使用 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);};
原图片:
代理后返回的图片:
问题解答
回答1:加了 encoding: null 就可以了
var options = { url: url, encoding: null};回答2:
应该是传的Blob对象,你试试转化一下。
回答3:图片如果不需要存储或者其它操作,直接通过pipe传递给response不行吗?
http.get(options, (response) => { response.pipe(res);})
soonfy
相关文章:
1. javascript - react input file2. python - beautifulsoup获取网页内容的问题3. python - 能通过CAN控制一部普通的家用轿车吗?4. html5 - 只用CSS如何实现input框的宽度随框里输入的内容长短自动适应?5. javascript - angularjs ngblur不生效 onblur生效,为什么?6. 人工智能 - python 机器学习 医疗数据 怎么学7. centos7 编译安装 Python 3.5.1 失败8. mysql - 分库分表、分区、读写分离 这些都是用在什么场景下 ,会带来哪些效率或者其他方面的好处9. javascript - 关于css绝对定位在ios浏览器被橡皮筋遮挡的问题10. c++ - 请问MySQL_Connection::isReadOnly 怎么解决?
