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. docker网络端口映射,没有方便点的操作方法么?2. css - html根字体设置成很大的值后, 包裹了行内元素的div莫名变高是什么原因3. javascript - 正则匹配字符串特定语句后的数字4. 请教一个python字符串处理的问题?5. 老师,你这两条斜杠的是怎么注释的?6. java - mybatis源码分析7. 修改mysql配置文件的默认字符集重启后依然不生效8. android - 安卓activity无法填充屏幕9. java - servlet的init方法和选择Filter的init方法来加载配置文件,二者有何区别?10. python - scrapy 处理 文章 分页的内容

网公网安备