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. android - VideoView与百度Map冲突2. javascript - 为什么当index等于5的时候,不在当前页面跳转到百度?不跳转的代码在倒数第五行3. angular.js - angularjs如何动态改变ng-model值,在controller中获取input中输入的值并组合post发送到后台4. javascript - 微信支付问题5. 极光推送 - Android app消息推送 百度 极光 个推 信鸽哪个好一些?6. html - CSS 怎么筛选没有id的某元素7. javascript - typescript关于接口,对象字面量额外属性检测问题,为什么使用断言或者变量时就不会检测额外属性?8. javascript - 百度搜索网站,如何让搜索结果显示一张图片加上一段描述,如图;求教9. 为什么微信内置浏览器用$_COOKIE取不到值?10. javascript - 如图,百度首页,查看源代码为什么什么都没有?
