そのような種類のURLを作成する方法を誰か教えてもらえますか
たとえば、URLが表示された場合
http://office.microsoft.com/global/images/default.aspx?assetid=ZA103873861033
画像にリダイレクトします..
私の質問は、この URL は画像ですが、拡張子は aspx です。そのような種類の URL を作成する方法
ありがとう
そのような種類のURLを作成する方法を誰か教えてもらえますか
たとえば、URLが表示された場合
http://office.microsoft.com/global/images/default.aspx?assetid=ZA103873861033
画像にリダイレクトします..
私の質問は、この URL は画像ですが、拡張子は aspx です。そのような種類の URL を作成する方法
ありがとう
サーバーからの応答でContentTypeを設定する
HttpContext.Response.ContentType = "image/jpeg";
これは、データベースにバイナリ オブジェクトとして保存されている画像を表示するための一般的な方法です。多くのチュートリアルの 1 つがここにあります。
基本的に、彼らが行っていることは、aspx
ページを使用して、データベースから取得する画像を指示する URL パラメーターを受け入れることです。次に、応答ですべての出力とヘッダーをクリアし、画像のヘッダーを設定し、バイナリ データを応答ストリームに書き込み、応答ストリームを閉じます。
したがって、実際には画像に「リダイレクト」しているわけではありません。リクエストされた「ページ」は、レスポンスの画像リソースであることがわかります。
ファイル拡張子は、文字通り WWW では意味を持ちません。特定の URL のコンテンツを正しく記述するのは content-type/ MIME-typeです。これは、メインの HTTP ペイロードの配信前に URL が要求されたときに、 HTTP ヘッダーで配信されます。他の回答では、ASP.NET でこれを正しく設定する方法について説明しています。
最も簡単な方法は、汎用ハンドラー *.ashx を追加することです。ashx ファイルには、クエリ文字列を取得して応答を操作できるコードが含まれています。Response.WriteFile(...)
他のすべての回答とは別にServer.Transfer()
、画像ファイルに対して(クライアント側で表示されないように)実行している可能性があります。これは、応答ヘッダーが適切な MIME タイプに設定されていることを意味しますが、画像が必ずしもデータベースから取得されたものではないことも意味します。この手法は、ホットリンクを防止するために実際の画像 URL を隠すために使用できます。