- PR -

blobデータの取得方法

投稿者投稿内容
Kira
ぬし
会議室デビュー日: 2004/10/30
投稿数: 252
投稿日時: 2006-06-23 22:39
かるあさん有難う御座います。
HtmlEncode というヒントから
HtmlDecode を行ったところ正常に表示されました。
なぜこうなっていたかは??ですが。。。

ただ、いくつかDBからアイコンをとっていると、画像が表示されない
ファイルがいくつかありました。

壊れてはいないようですが、ファイルの種類が違うようです。。。
Response.ContentType = "image/jpeg";
で指定する値はDBの情報を元に設定は出来ないのでしょうか?
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-06-24 00:41
引用:

Kiraさんの書き込み (2006-06-23 22:39) より:

HtmlEncode というヒントから
HtmlDecode を行ったところ正常に表示されました。
なぜこうなっていたかは??ですが。。。


ヒントになったようでよかったです。

引用:

ただ、いくつかDBからアイコンをとっていると、画像が表示されない
ファイルがいくつかありました。

壊れてはいないようですが、ファイルの種類が違うようです。。。
Response.ContentType = "image/jpeg";
で指定する値はDBの情報を元に設定は出来ないのでしょうか?


格納するときに表示用の画像タイプを一緒にDBに登録するとか
一律 jpeg に変換してから格納するとかしたほうが
バイナリから画像タイプを推測するより簡単だと思いますよ
Kira
ぬし
会議室デビュー日: 2004/10/30
投稿数: 252
投稿日時: 2006-06-24 09:49
かるあさん有難う御座います。

かるあさんの仰る通り
一律同じフォーマットで統一するといいのですが、
すでに、登録が完了してあるDBに対して
参照をする機能のみを追加しようとしております。
(本来は統一して登録するようにすべきだったのですが。。。)

なので、どうしてもバイナリから画像タイプをしたいと思っておりますが。。。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-06-25 21:17
引用:

かるあさんの書き込み (2006-06-23 16:36) より:

あとは表示する HTML から、
この ASPX へのリンクを貼ってあげれば OK です

コード:
  <img src="画像.aspx">




 2005 ということなので、それ用のページがあったと思います。
やることは同じなんだけどね。。。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-06-25 21:49
やったことが無いので多分ですみませんが
バイナリストリームから Bitmap オブジェクトを作って
RowFormatを参照したらいけませんか?

http://msdn2.microsoft.com/ja-JP/library/system.drawing.image.rawformat.aspx
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-06-25 21:57
> 2005 ということなので、それ用のページがあったと思います。
> やることは同じなんだけどね。。。

ashx(ジェネリックハンドラ)ファイルですね。
継承元とかメソッドとかaspxファイルとはちょっと違ってますけど、データを書き出すということなら同じように使えます。
aspxファイルが持っているページをレンダリングする仕組みとかがない分ちょっとだけ軽い処理になります。
Kira
ぬし
会議室デビュー日: 2004/10/30
投稿数: 252
投稿日時: 2006-06-26 19:59
皆様ありがとうございます。

>かるあさん
かるあさんの教えていただいた方法を試してみたのですが、
まずBLOBをImageに変換するところで扱けてしまいました。
なんとかデータの読み取りはできたのですが、Imageに変換するときに
「指定したパラメータは有効ではありません」
というエラーが@ででます。
A、Bの時点で総Byte数は正しく取れているみたいなので
データの読み取りは問題ないと思うんですが。。。

アドバイスをお願いできますでしょうか?


Response.BinaryWrite(datareader.Item("IMAGE"))
Dim b(32767) As Byte
Dim c As Long = datareader.GetBytes(0, 0, b, 0, 32767)B
Dim d As New System.IO.MemoryStream(c)A
Dim e As New System.Drawing.Bitmap(d)@

またcontenttypeの指定ですが、仰るとおり、"text/html"と指定しても
指定しなくても画像が正しく表示されるのですが、
指定はあまり意味がないのでしょうか?
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-06-26 22:02
このあたりが参考になると思います
http://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&mo=16102&namber=16102&space=0&rev=0&page=0&no=0

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