2011-01-07 58 views
2

有人知道一種方式,我怎麼能找出加載的圖像是不是圖像,例如, 404錯誤被返回?找出加載的圖像是否無效(例如,是404錯誤頁面)

如果發生錯誤,我想將圖片網址設置爲例如白色的圖像。

我不能使用像404錯誤處理或servlet這樣的服務器端技術,因爲我想用Amazon S3服務我的映像,它沒有錯誤處理或重定向到「默認文件」找不到要求的圖片。

+0

看看這個答案:http://stackoverflow.com/questions/92720/jquery-javascript-to-replace-broken-images – 2011-01-07 13:23:44

回答

1

你可能會發現這個question有用的答案。它使用jQuery,但檢測圖像未正確加載到瀏覽器的想法很好處理。

7

Image類有一個addErrorHandler方法。註冊一個錯誤處理程序,該程序在未正確加載圖像時觸發。在這個處理程序中,您可以將圖像設置爲默認圖像。

0

不知道當問這個問題時錯誤處理的狀態是什麼,但S3目前有404錯誤處理。我用它來根據需求產生拇指。

  1. 設置桶靜態網站託管

  2. 添加重定向規則的靜態網站託管部分下如:

    <RoutingRules> 
        <RoutingRule> 
        <Condition> 
         <KeyPrefixEquals/> 
         <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals> 
        </Condition> 
        <Redirect> 
         <HostName>yoursite.com</HostName> 
         <ReplaceKeyPrefixWith>image/generate/</ReplaceKeyPrefixWith> 
        </Redirect> 
        </RoutingRule> 
    </RoutingRules> 
    

在上述情況下丟失的圖像(即cat.jpg)將致電:

http://yoursite.com/image/generate/cat.jpg 

在我的情況下,我用它來提供縮略圖。

這裏有一個用例:

<img src="http://awsbucketurl.com/thumb_cat.jpg"> 

這使得通過S3,然後調用我的網站的網址觸發404。我看到它的前綴爲'thumb_',然後從S3中獲取cat.jpg,調整大小,下次將拇指上傳到S3並將其傳遞給瀏覽器以進行本次會話。

需要注意的一點是:如果圖像被緩存系統調用,那麼它將不會在404之後接收到新圖像,而是存儲丟失的圖像。

相關問題