有人知道一種方式,我怎麼能找出加載的圖像是不是圖像,例如, 404錯誤被返回?找出加載的圖像是否無效(例如,是404錯誤頁面)
如果發生錯誤,我想將圖片網址設置爲例如白色的圖像。
我不能使用像404錯誤處理或servlet這樣的服務器端技術,因爲我想用Amazon S3服務我的映像,它沒有錯誤處理或重定向到「默認文件」找不到要求的圖片。
有人知道一種方式,我怎麼能找出加載的圖像是不是圖像,例如, 404錯誤被返回?找出加載的圖像是否無效(例如,是404錯誤頁面)
如果發生錯誤,我想將圖片網址設置爲例如白色的圖像。
我不能使用像404錯誤處理或servlet這樣的服務器端技術,因爲我想用Amazon S3服務我的映像,它沒有錯誤處理或重定向到「默認文件」找不到要求的圖片。
你可能會發現這個question有用的答案。它使用jQuery,但檢測圖像未正確加載到瀏覽器的想法很好處理。
該Image
類有一個addErrorHandler
方法。註冊一個錯誤處理程序,該程序在未正確加載圖像時觸發。在這個處理程序中,您可以將圖像設置爲默認圖像。
不知道當問這個問題時錯誤處理的狀態是什麼,但S3目前有404錯誤處理。我用它來根據需求產生拇指。
設置桶靜態網站託管
添加重定向規則的靜態網站託管部分下如:
<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之後接收到新圖像,而是存儲丟失的圖像。
看看這個答案:http://stackoverflow.com/questions/92720/jquery-javascript-to-replace-broken-images – 2011-01-07 13:23:44