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. mysql - 分庫分表、分區、讀寫分離 這些都是用在什么場景下 ,會帶來哪些效率或者其他方面的好處2. css - 移動端 oppo 手機之 Border-radius3. 關于Mysql聯合查詢4. python 計算兩個時間相差的分鐘數,超過一天時計算不對5. 人工智能 - python 機器學習 醫療數據 怎么學6. 如何修改phpstudy的phpmyadmin放到其他地方7. javascript - vue-echarts-v3使用的過程中折線圖區域呈漸變色。8. 爬蟲圖片 - 關于Python 爬蟲的問題9. pip安裝提示Twisted錯誤問題(Python3.6.4安裝Twisted錯誤)10. c++ - 請問MySQL_Connection::isReadOnly 怎么解決?
