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. python - linux怎么在每天的凌晨2点执行一次这个log.py文件2. 关于mysql联合查询一对多的显示结果问题3. 实现bing搜索工具urlAPI提交4. MySQL主键冲突时的更新操作和替换操作在功能上有什么差别(如图)5. 数据库 - Mysql的存储过程真的是个坑!求助下面的存储过程哪里错啦,实在是找不到哪里的问题了。6. windows误人子弟啊7. 冒昧问一下,我这php代码哪里出错了???8. 如何用笔记本上的apache做微信开发的服务器9. 我在网址中输入localhost/abc.php显示的是not found是为什么呢?10. mysql优化 - MySQL如何为配置表建立索引?
