3

私はHttpHandlerとして動的イメージリサイズを書きました。自動的にそう例えば、画像の拡張子を持つ何にも呼ばれています:クエリ文字列がない場合は、HttpHandlerをスキップすることはできますか?

http://www.mysite.com/picture.jpg?width=200&height=100

はハンドラを実行し、適切なレスポンスヘッダにサムネイル画像を返します。しかし、私は、ハンドラは、それがクエリ文字列なしで呼ばれていた場合、要求は「通過」ようにしたい:

http://www.mysite.com/picture.jpg

それがなかったならば、それは次のようになりように私は、これはヘッダ情報と画像を返すようにしたいですそれをハンドラを介して実行します。これはヘッダ情報(最後に書かれた日付などのデータを読み込むためにファイルストリームを開くことを含む)を手動でコード化する必要がないか、ハンドラをHTTPModuleに変換する必要がありますか?

答えて

4

ハンドラは要求を「処理」する必要があります。それはチェーンの終わりです。あなたはそれをHttpModuleにする必要があります。または、サイズを変更したかどうかに関わらず、自分で画像を提供する必要があります。

+0

それは私がハンドラが何をしなければならないかを感じていたものです。それを確認していただきありがとうございます! –

1

このケースを考慮してハンドラを調整するだけでは問題ありませんか?クエリ文字列パラメータがないことを確認して、リクエストパスをディスクにマップし、イメージを開いて出力ストリームに直接書き込むことでイメージを返すことができます。

+0

問題は、私はすべてのヘッダー情報を自分で設定するよりも、Webサーバーで処理することが必要だということです。 実際には、これをやりたくない主な理由は、最後の書き込み日を取得するためにファイルを開く必要があると考えたからです。私は 'File.GetLastWriteTimeUtc(file)'がこれまでと同じことをしているとは気づきませんでした。 –

関連する問題