0

カスタム作成の自動アップローダーを使用して、ユーザーから に画像をインポートしていますAmazon S3。データベースにパラレルimage libraryを構築しているので、http リクエストを無駄にしないために S3 でアクセスできる画像を知っています。

ただし、アップローダーがエラー (ソース画像が見つからないなど) をスローすることがあり、検証しているにもかかわらず、メディア テーブルにエントリがあり、S3 に一致する画像がない場合があります。

これらを修正するために、画像データベースから誤ったエントリを消去するcfthread/を作成することを考えています。cfscheduleよくわからないのは、キャプチャ方法です404 responses。現在、私はこれをページに持っています:

<img src="#variables.imageSrc#" alt="#some alt#" title="#some title#" class="ui-li-thumb ui-corner-all" />

画像の読み込みを試み、失敗した場合は 404 を返します。

質問
これをどのように捉えます404か? マークアップには何も入れたくないので、これonrequestendapplication.cfc. もしそうなら、画像リクエストを識別する簡単な方法はありますか?

洞察をありがとう!

EDIT:S3への二重のリクエストになり、多くの画像があるため、表示する前にすべての画像で
実行することは実行可能ではないと思います。isDefined404 を取得してからデータベースをクリーンアップしたいので、次回は画像にアクセスできなくなります。

4

2 に答える 2

1

Matt が提案したように cfhttp を使用して各画像をテストしたくない場合は、img タグの onError ハンドラーを使用してブラウザーから ajax 呼び出しをトリガーしてみませんか。このようなものですが、カスタムグラフィックを表示する代わりに、ajax をトリガーしてフラグを設定するか、ユーザーには見えないため画像を削除することさえできます。 壊れた画像を置き換える jQuery/JavaScript

Image onerror イベントの詳細

画像で isdefined をどのように使用するかを知りたいです。投稿されたコードからは、isdefined("variables.imageSrc")あまり役に立ちません。

于 2012-11-14T12:11:56.043 に答える
0

これを行うためにスケジュールされたタスクを実行している場合は、cfhttpを使用してイメージアセットに対してGETリクエストを実行してみませんか?次に、応答のステータスコードを確認してサーバー上のファイルの存在を検証し、それに応じてデータベースを更新できます。

于 2012-11-14T10:40:05.720 に答える