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 下面創建的IMAGE 他們的 ID 一樣?這個是怎么回事????2. html5 - datatables 加載不出來數據。3. node.js - mongodb查找子對象的名稱為某個值的對象的方法4. 運行python程序時出現“應用程序發生異常”的內存錯誤?5. 測試自動化html元素選擇器元素ID或DataAttribute [關閉]6. javascript - 在 model里定義的 引用表模型時,model為undefined。7. javascript - QQ第三方登錄的問題8. 利用IPMI遠程安裝centos報錯!9. html5和Flash對抗是什么情況?10. 前端 - @media query 使用出現的問題?

網公網安備