Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP.NET mySQL BLOB

Reply
Thread Tools

ASP.NET mySQL BLOB

 
 
cuyler.jones@gmail.com
Guest
Posts: n/a
 
      08-27-2006
Hello --

I'm having a heck of a time grabbing a blob ( a jpeg image) from a
mySQL database and displaying it on a page.

I am able to connect to the database and retrieve the data, however
when the page loads, it just spews the binary garbage rather than
displaying the image.

Here's the code:

string _connectionString = ConfigurationManager.ConnectionStrings[ "DB"
].ToString(); string imageQuery = "SELECT fullsize AS image_data
FROM table WHERE id ='A1'";

OdbcConnection connection = new OdbcConnection(
ConfigurationManager,ConnectionStrings["DB"].ToString() );

OdbcCommand cmd = new OdbcCommand( imageQuery, connection );

DataSet dsImage = new DataSet();

Response.ContentType = "image/jpeg";
Response.BinaryWrite( ( Byte[] )dsImage.Tables[ 0 ].Rows[ 0 ][
"image_data" ] );



It appears to be a problem with Base64Decoding... but I'm stumped. I'm
basically trying to replicate some PHP code:
<?

$image_data = (isset($_GET['swatchthumb'])) ? 'select swatchthumb as
image_data from birdie_product_model where uid = "'.$_GET['uid'].'"' :
'select fullsize as image_data from birdie_product_model where uid =
"'.$_GET['uid'].'"';

$image_data = mysql_fetch_object(mysql_query($image_data));

header("Content-type: image/jpeg");

echo base64_decode($image_data->image_data);
?>


Any insight (beyond the obvious (don't use Blobs!) ) would be MOST
appreciated!

Regards,

Cuyler Jones

 
Reply With Quote
 
 
 
 
KJ
Guest
Posts: n/a
 
      08-28-2006
I believe you need a little more in the headers. For example (code not
tested):

Response.Clear();
Response.ContentType = "image/jpeg";
Response.AppendHeader("Content-Length", ( Byte[] )dsImage.Tables[ 0
].Rows[ 0 ]["image_data" ].Length.ToString());
Response.AppendHeader("Content-Disposition","inline;filename=AName.jpeg);
Response.BinaryWrite(( Byte[] )dsImage.Tables[ 0 ].Rows[ 0
]["image_data" ]);
Response.End();

wrote:
> Hello --
>
> I'm having a heck of a time grabbing a blob ( a jpeg image) from a
> mySQL database and displaying it on a page.
>
> I am able to connect to the database and retrieve the data, however
> when the page loads, it just spews the binary garbage rather than
> displaying the image.
>
> Here's the code:
>
> string _connectionString = ConfigurationManager.ConnectionStrings[ "DB"
> ].ToString(); string imageQuery = "SELECT fullsize AS image_data
> FROM table WHERE id ='A1'";
>
> OdbcConnection connection = new OdbcConnection(
> ConfigurationManager,ConnectionStrings["DB"].ToString() );
>
> OdbcCommand cmd = new OdbcCommand( imageQuery, connection );
>
> DataSet dsImage = new DataSet();
>
> Response.ContentType = "image/jpeg";
> Response.BinaryWrite( ( Byte[] )dsImage.Tables[ 0 ].Rows[ 0 ][
> "image_data" ] );
>
>
>
> It appears to be a problem with Base64Decoding... but I'm stumped. I'm
> basically trying to replicate some PHP code:
> <?
>
> $image_data = (isset($_GET['swatchthumb'])) ? 'select swatchthumb as
> image_data from birdie_product_model where uid = "'.$_GET['uid'].'"' :
> 'select fullsize as image_data from birdie_product_model where uid =
> "'.$_GET['uid'].'"';
>
> $image_data = mysql_fetch_object(mysql_query($image_data));
>
> header("Content-type: image/jpeg");
>
> echo base64_decode($image_data->image_data);
> ?>
>
>
> Any insight (beyond the obvious (don't use Blobs!) ) would be MOST
> appreciated!
>
> Regards,
>
> Cuyler Jones


 
Reply With Quote
 
 
 
 
Cuyler
Guest
Posts: n/a
 
      08-28-2006
Thank you for the information. Unfortunately it has yeilded the same
results.

Regards,

Cuyler Jones


KJ wrote:
> I believe you need a little more in the headers. For example (code not
> tested):
>
> Response.Clear();
> Response.ContentType = "image/jpeg";
> Response.AppendHeader("Content-Length", ( Byte[] )dsImage.Tables[ 0
> ].Rows[ 0 ]["image_data" ].Length.ToString());
> Response.AppendHeader("Content-Disposition","inline;filename=AName.jpeg);
> Response.BinaryWrite(( Byte[] )dsImage.Tables[ 0 ].Rows[ 0
> ]["image_data" ]);
> Response.End();
>
> wrote:
> > Hello --
> >
> > I'm having a heck of a time grabbing a blob ( a jpeg image) from a
> > mySQL database and displaying it on a page.
> >
> > I am able to connect to the database and retrieve the data, however
> > when the page loads, it just spews the binary garbage rather than
> > displaying the image.
> >
> > Here's the code:
> >
> > string _connectionString = ConfigurationManager.ConnectionStrings[ "DB"
> > ].ToString(); string imageQuery = "SELECT fullsize AS image_data
> > FROM table WHERE id ='A1'";
> >
> > OdbcConnection connection = new OdbcConnection(
> > ConfigurationManager,ConnectionStrings["DB"].ToString() );
> >
> > OdbcCommand cmd = new OdbcCommand( imageQuery, connection );
> >
> > DataSet dsImage = new DataSet();
> >
> > Response.ContentType = "image/jpeg";
> > Response.BinaryWrite( ( Byte[] )dsImage.Tables[ 0 ].Rows[ 0 ][
> > "image_data" ] );
> >
> >
> >
> > It appears to be a problem with Base64Decoding... but I'm stumped. I'm
> > basically trying to replicate some PHP code:
> > <?
> >
> > $image_data = (isset($_GET['swatchthumb'])) ? 'select swatchthumb as
> > image_data from birdie_product_model where uid = "'.$_GET['uid'].'"' :
> > 'select fullsize as image_data from birdie_product_model where uid =
> > "'.$_GET['uid'].'"';
> >
> > $image_data = mysql_fetch_object(mysql_query($image_data));
> >
> > header("Content-type: image/jpeg");
> >
> > echo base64_decode($image_data->image_data);
> > ?>
> >
> >
> > Any insight (beyond the obvious (don't use Blobs!) ) would be MOST
> > appreciated!
> >
> > Regards,
> >
> > Cuyler Jones


 
Reply With Quote
 
Mischa Kroon
Guest
Posts: n/a
 
      08-28-2006

> Any insight (beyond the obvious (don't use Blobs!) ) would be MOST
> appreciated!
>


First off then, you might want to use the mysql connector.
Which is bound to perform a lot better then ODBC

This is a help segment talking about blobs:

http://dev.mysql.com/doc/refman/5.0/...sing-blob.html

Release version:
http://dev.mysql.com/downloads/connector/net/1.0.html


 
Reply With Quote
 
Cuyler
Guest
Posts: n/a
 
      08-28-2006
Mischa,

Thank you for your input. I tried the mySQL connector and followed the
example, however I ended up in the same spot.

The line: FileSize = myData.GetUInt32(myData.GetOrdinal("file_size"));
from the example, throws and exception. (Cannot convert type
System.Byte[] to System.IConvertable).

One of the problems is that I do not have the size of the file stored
in the database, so I had to get it manually:

string test = myData.GetString(0);
FileSize = Convert.ToUInt32( test.Length );
....

Addtionally, the line: myData.GetBytes(myData.GetOrdinal("file"), 0,
rawData, 0, FileSize); from the example requires a cast of "FileSize"
from UInt32 to int, which is a potential issue.

I am beginning to think that what I am trying to do is impossible with
the C#2.0 / mySQL combination, or the problem is beyond my current
skill level, as I have exhausted every resource that I can think of.

Regards,

Cuyler Jones


Mischa Kroon wrote:
> > Any insight (beyond the obvious (don't use Blobs!) ) would be MOST
> > appreciated!
> >

>
> First off then, you might want to use the mysql connector.
> Which is bound to perform a lot better then ODBC
>
> This is a help segment talking about blobs:
>
> http://dev.mysql.com/doc/refman/5.0/...sing-blob.html
>
> Release version:
> http://dev.mysql.com/downloads/connector/net/1.0.html


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
save BLOB to file from MySQL using c# Markusek Peter ASP .Net 2 06-09-2007 12:34 PM
Latest errors on pickled objects and blob datatypes in mysql krishnakant Mane Python 2 05-07-2007 05:57 PM
Blob using MySQL Moerderin Java 6 07-31-2004 01:07 PM
Copying a blob from one mysql record to another with a where clause bobb Python 0 01-05-2004 02:42 AM
Re: Hibernate + MySQl - blob mapping question Roedy Green Java 0 08-23-2003 04:58 AM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57