2013-12-12 53 views
0

我對此很難接受。如果我有一個外部圖像網址。例如,這是來自IMDb.com的圖片網址,http://ia.media-imdb.com/images/M/[email protected]@._V1_SY317_CR52,0,214,317_.jpg。我將如何能夠將此圖像發送給客戶?node.js表示將外部圖像推送到客戶端

目前,我正在做:

res.write('<img src="/http://ia.media-imdb.com/images/M/[email protected]@._V1_SY317_CR52,0,214,317_.jpg"></img>'); 

但它不顯示,我只是得到一個破碎的形象。

UPDATE:

最後我這樣做是爲了使這項工作:

var url = http://ia.media-imdb.com/images/M/[email protected]@._V1_SY317_CR52,0,214,317_.jpg; 

var loadBase64Image = function (url, callback) { 
    var request = require('request'); 
     request({url: url, encoding: null}, function (err, res, body) { 
     if (!err && res.statusCode == 200) { 
      var base64prefix = 'data:' + res.headers['content-type'] + ';base64,' 
      , image = body.toString('base64'); 
       if (typeof callback == 'function') { 
       callback(image, base64prefix); 
       } 
      } else { 
     throw new Error('Can not download image'); 
     } 
}); 
}; 

loadBase64Image(imageUrl, function (image, prefix) { 
    res.write('<img src="' + prefix + image + '"/>'); 
}); 
+0

http://stackoverflow.com/questions/5823722/how-to-serve-an-image-using-nodejs – vinayr

+1

怎麼樣領先/在您的src網址? –

+0

哦,哎呀!那是一場意外。但即使沒有/它仍然顯示一個破碎的圖像。 – Justin

回答

2

IMDB爲該圖像URL返回403(禁止)HTTP狀態。我的猜測是,IMDB根據請求的引用來阻止圖像。這通常用於防止與資源深層鏈接,因此一個網站無法「竊取」其他網站的帶寬/內容。即使this JSFiddle也顯示一張破損的圖片,但直接在瀏覽器中加載圖片網址。

<img src="http://ia.media-imdb.com/images/M/[email protected]@._V1_SY317_CR52,0,214,317_.jpg"/> 

解決辦法是不使用IMDB圖像,他們不公開鏈接使可用。

+0

我會upvote這個答案,但我需要15或更高的聲望!我知道這是一個延遲的反應,但謝謝! – Justin

0

試試這個:
res.write('<img src="http://ia.media-imdb.com/images/M/[email protected]@._V1_SY317_CR52,0,214,317_.jpg">');

圖片標籤自動關閉。沒有結束標籤。

相關問題