3

基本的な MSDN 情報といくつかのチュートリアルを確認しました。これまでに学んだことから、ImageHandler.ashx および PDFHandler.ashx と呼ぶ 2 つの .ashx ハンドラーを作成できました。それぞれ、イメージまたは PDF を返します。これらのハンドラーの両方について、ProcessRequestメソッドでcontext.Response.ContentType、それぞれ「image/jpeg」と「application/pdf」に設定し、結果を書き込みcontext.Response.BinaryWrite(bytes)ます。これまでのところ、これは問題なく機能します。

ただし、タイプに関係なく、ユーザーが任意のファイルをダウンロードできるようにしたいと考えています。ファイルの種類ごとに異なる Handler を作成する必要がありますか?

.ashx ファイルを 1 つだけ作成し、ファイルの種類 (ファイル名の部分文字列を介して取得) に基づいて switch ステートメントを作成できますか? 私がそうしても、.xyz ファイルなど、標準ではないファイルの種類はどうなりますか? その場合、何を設定しcontent.Response.ContentTypeますか?

4

2 に答える 2

3

いいえ、複数のハンドラーは必要ありません。基本的な操作が同じ場合は特にそうです。はい、応答の content-type を何に設定するかを決定するために、任意の種類のロジックを使用できます。不明な点がある場合は、 を使用してくださいapplication/octet-stream。また、"content-disposition" ヘッダーの設定を検討する必要があります。これにより、"インライン" (つまり、ブラウザーで) 表示するか、ダウンロードとしてプロンプトを表示するかを提案する機会が与えられます。一部のashxページ)。

于 2012-06-08T05:59:53.177 に答える
2

Content-type: application/octet-streamファイル拡張子に基づいて何を処理するかを設定し、ブラウザーに任せることができます。

于 2012-06-08T05:59:54.613 に答える