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 start -a dockername 老是卡住,什么情况?2. 计算机 - 我学习了C语言,数据结构和一点点java基础,想自学C++,请问买什么入门书籍好?3. dockerfile - 我用docker build的时候出现下边问题 麻烦帮我看一下4. 在windows下安装docker Toolbox 启动Docker Quickstart Terminal 失败!5. docker绑定了nginx端口 外部访问不到6. 前端 - css中关于设置透明度的问题,有点混乱7. 我在centos容器里安装docker,也就是在容器里安装容器,报错了?8. macos - mac下docker如何设置代理9. docker-compose 为何找不到配置文件?10. docker 下面创建的IMAGE 他们的 ID 一样?这个是怎么回事????
