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. nignx - docker內nginx 80端口被占用2. docker - 如何修改運行中容器的配置3. python3.x - python連oanda的模擬交易api獲取json問題第五問4. node.js - 我是一個做前端的,求教如何學習vue,node等js引擎?5. java - SSH框架中寫分頁時service層中不能注入分頁類6. angular.js - angular內容過長展開收起效果7. 為什么我ping不通我的docker容器呢???8. docker-machine添加一個已有的docker主機問題9. javascript - js代碼獲取驗證碼倒計時問題10. 關于docker下的nginx壓力測試
