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. javascript - react input file2. python - beautifulsoup獲取網頁內容的問題3. python - 能通過CAN控制一部普通的家用轎車嗎?4. html5 - 只用CSS如何實現input框的寬度隨框里輸入的內容長短自動適應?5. javascript - angularjs ngblur不生效 onblur生效,為什么?6. 人工智能 - python 機器學習 醫療數據 怎么學7. centos7 編譯安裝 Python 3.5.1 失敗8. mysql - 分庫分表、分區、讀寫分離 這些都是用在什么場景下 ,會帶來哪些效率或者其他方面的好處9. javascript - 關于css絕對定位在ios瀏覽器被橡皮筋遮擋的問題10. c++ - 請問MySQL_Connection::isReadOnly 怎么解決?
