In a mysql MyISAM
table, I have a column type mediumblob
and storing captured image as blob data. I got some interesting and problematic images. Some of the images are gradually losing
data.
Field type
--------------------------
image mediumblob
my.ini
max allowed packet size set max_allowed_packet = 8M
this is the problem
When the C#
application fetches the data from the server, this kind of images losing data of random sizes every time. I got 10-12
bad images like this in 100000+
image data.
What could be the reason of this kind of behavior? Anyone has any idea/solution how to fix/avoid this problem.
Update 1:
Reading bytes form PictureBox
MemoryStream ms = new MemoryStream();
byte[] ret = null;
try
{
picturebox.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] Data = new byte[ms.Length];
ms.Read(Data, 0, (int)ms.Length);
ret = byteData;
ms.Close();
}
Saving the bytes array into database as medium blob data. When retrieving the data from database I am casting the reader data:
byte[] Data = (byte[])reader["Image"];
First of all, as Sarke mentioned, storing files content in DB isn't the best idea (file meta data is a whole different story.
Why?
I store close to 2 million images that are stored in a simple folder structure: /xx/yy/filename
, where filename = md5 of file (+ optional number should a hash collision happen), xx = first 2 characters of md5, yy = 3rd and 4th character of md5. It works great and I shouldn't get any FS related slowdowns for a long while (2 orders of magnitude at least).
Getting back to your question there are 3 options
max_allowed_packet
restricts image size to ~8 MB, mediub_blob
can store maximum of 16 MB. To rule this one out increase max_allowed_packet
to 32 MB and test. You'll need to make sure no image exceeds this size at any point and make sure the app does it's job right when uploading photos. If you can find an image that was uploaded and displayed fine (from DB!) and later it didn't then this is not the cause.If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With