我正在使用自定義書面自動上傳器將用戶的圖像導入到Amazon S3
。我在我的數據庫中建立了一個並行的image library
,所以我知道我可以在S3上訪問哪些映像,以避免浪費任何http請求。如何在Coldfusion中捕獲缺失圖像的404響應?
但是,我的上傳程序有時會拋出錯誤(例如源圖像丟失),雖然我正在驗證,但有時我的媒體表中的條目結束,S3上沒有匹配的圖像。
要更正這些,我正在考慮創建一個cfthread
/cfschedule
,這將從錯誤條目中清除我的映像數據庫。我不確定如何捕獲404 responses
。現在我在一個頁面上有這個:
<img src="#variables.imageSrc#" alt="#some alt#" title="#some title#" class="ui-li-thumb ui-corner-all" />
它試圖加載圖像並返回404如果不成功。
問題
我將如何抓住這一404
?我不想在標記中添加任何內容,因此我認爲這應該是onrequestend
或我的application.cfc
中正在監視的另一個Coldfusion事件。如果是這樣,是否有一種簡單的方法來識別圖像請求,因爲我不想在每個應用程序請求上運行一個大例程。
感謝您的見解!
編輯:
我不認爲顯示它是feasable之前運行的每一個圖像上isDefined
,因爲這將是S3雙請求,並有大量的圖片。我想採用404,然後清理我的數據庫,所以下次圖像將不再被訪問。
hm。但是沒有辦法在onRequestEnd上捕獲http請求響應(和其他參數)? – frequent
不是我所知道的。 CF只是生成文本發送到瀏覽器。這取決於瀏覽器處理任何丟失的資產。 – Travis
換句話說,'
'不會導致CF向這個資源發出請求,它只是將它傳遞給瀏覽器,所以CF無法知道它是否有效。要使CF檢查瀏覽器請求的狀態代碼,請使用cfhttp。如果你擔心帶寬使用,你可以嘗試使用'method =「head *'*應該*防止亞馬遜發送整個圖像,並給你頭信息。 –
Travis