PC Review


Reply
Thread Tools Rate Thread

ASP.NET mySQL BLOB

 
 
cuyler.jones@gmail.com
Guest
Posts: n/a
 
      27th Aug 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
 
      28th Aug 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();

(E-Mail Removed) 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
 
      28th Aug 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();
>
> (E-Mail Removed) 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
 
      28th Aug 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
 
      28th Aug 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
Rate This Thread
Rate This Thread:

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
MySQL & BLOB field retrieving pmz Microsoft C# .NET 2 4th Feb 2006 02:01 AM
Getting a image (blob) from mysql using reader.GetBytes?? Tinus Microsoft C# .NET 1 12th Aug 2005 03:15 PM
strange problem MySQL blob field dejans@regulussoft.com Microsoft ADO .NET 0 6th Jun 2005 02:45 PM
save BLOB to file from MySQL using c# Markusek Peter Microsoft ASP .NET 1 19th Feb 2004 04:35 PM
MySQL Control Center 0.9.4 - A GUI client for MySQL databases. Gordon Darling Freeware 0 29th Dec 2003 08:43 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 11:35 AM.