समस्या छवि फ़ाइल के निर्माता में निहित है:
std::ifstream blob_file(filename.c_str());
इसमें बाइनरी मोड विशेषता होनी चाहिए:
std::ifstream blob_file(filename.c_str(), std::ios_base::binary);
फ़ाइल, एक JPEG छवि, बाइनरी है जानकारी।
साथ ही, बाइट 65 पर हेक्स डंप 1a
. दिखाता है , जो फ़ाइल वर्ण का Windows OS अंत है:
0000040 1a 14 1115 1811 1821 1d1a 1f1d 1f1f 1713
कंस्ट्रक्टर को ठीक करने के बाद, MySql डेटा का आकार दिखाता है:
mysql> SELECT ID_Picture, LENGTH(Image_Data)
-> FROM picture_image_data
-> WHERE ID_Picture = 1;
+------------+--------------------+
| ID_Picture | LENGTH(Image_Data) |
+------------+--------------------+
| 1 | 18453 |
+------------+--------------------+
1 row in set (0.00 sec)