使用 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);
};
原始圖片:
#代理程式後回傳的圖片:
#
加了
encoding: null
就可以了應該是傳的Blob對象,你試試看轉化一下。
圖片如果不需要儲存或其它操作,直接透過pipe傳遞給response不行嗎?
soonfy