- - PR -
ASP.NETの質問
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-09-13 23:24
ASP.NET とか関係なく、ブラウザが画像をどうやって表示しているのかを理解すると自ずと答えは出ると思います。
ブラウザは、ある HTML ファイルの URL にリクエストし、HTML を受け取りますよね? で、受け取った HTML 内に<img src="商品名.jpeg" />みたいなタグがあると、ブラウザはその画像を取得するために再度リクエストします。 なので、src="商品名.jpeg"という箇所に画像ファイルのバイナリをぶっこんでも当然無理なわけです。 じゃあどうすんの?って話になりますが、ある URL にリクエストされたら画像ファイルのストリームを返すような仕組みを作ればよいのです。 例えば、http://testtesttest/商品画像.aspx?id=1 というリクエストを受け取ったら、ID = 1 の商品画像ファイルのストリームをレスポンスとして返すページ、というイメージです。 ・ページ1 Default.aspx … <asp:image ID="image1" runat="server" Width="100" Height="100px" ImageAlign="AbsMiddle" ImageUrl ="http://testtesttest/商品画像.aspx?id=1" /> … ・ページ2 商品画像.aspx 「画像のストリーム」を返すページ。 _________________ 囚人のジレンマな日々 |
|
投稿日時: 2006-09-14 07:09
囚人さんの説明を補足すると、
Response.ContentTypeでイメージの種類を設定して Response.BinaryWriteでデータベースから取得したイメージを書き込みます。 <img src="ShowPicture.aspx?id=1"> ShowPicture.aspx: ... Response.ContentType = "image/gif" Response.BinaryWrite(dataReader("Picture")) _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 |
|
投稿日時: 2006-09-14 09:17
最初の投稿では、画像のファイル名となっていますが、画像のバイナリデータもあるとも仰られているようです。
どちらを使おうと思っていらっしゃるのでしょうか? [ メッセージ編集済み 編集者: R・田中一郎 編集日時 2006-09-14 09:20 ] |