javascript - Express 和 request 如何代理遠(yuǎn)程圖片?
問題描述
使用 Node 的 Express 結(jié)合 request 來代理遠(yuǎn)程圖片,但是返回的內(nèi)容和原圖片的內(nèi)容有區(qū)別,是亂碼,但是亂的不一致。關(guān)鍵代碼:
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:
應(yīng)該是傳的Blob對(duì)象,你試試轉(zhuǎn)化一下。
回答3:圖片如果不需要存儲(chǔ)或者其它操作,直接通過pipe傳遞給response不行嗎?
http.get(options, (response) => { response.pipe(res);})
soonfy
相關(guān)文章:
1. boot2docker無法啟動(dòng)2. docker-compose中volumes的問題3. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””4. docker容器呢SSH為什么連不通呢?5. java - SSH框架中寫分頁時(shí)service層中不能注入分頁類6. dockerfile - 為什么docker容器啟動(dòng)不了?7. 關(guān)于docker下的nginx壓力測(cè)試8. node.js - antdesign怎么集合react-redux對(duì)input控件進(jìn)行初始化賦值9. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.10. nignx - docker內(nèi)nginx 80端口被占用

網(wǎng)公網(wǎng)安備