- PR -

ASP.NETの質問

投稿者投稿内容
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 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
「画像のストリーム」を返すページ。

_________________
囚人のジレンマな日々
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 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サンプル集
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-09-14 09:17
最初の投稿では、画像のファイル名となっていますが、画像のバイナリデータもあるとも仰られているようです。
どちらを使おうと思っていらっしゃるのでしょうか?


[ メッセージ編集済み 編集者: R・田中一郎 編集日時 2006-09-14 09:20 ]

スキルアップ/キャリアアップ(JOB@IT)