डेटाबेस में छवियों को संग्रहीत करने की सामान्य विधि डेटा को संग्रहीत करने से पहले छवि को base64
डेटा में परिवर्तित करना है। यह प्रक्रिया आकार में 33% की वृद्धि करेगी। वैकल्पिक रूप से छवि को सीधे BLOB
के रूप में संग्रहीत करना संभव है; उदाहरण के लिए:डेटाबेस में सीधे डेटा या बेस 64 डेटा के रूप में संग्रहीत करना?
$image = new Imagick("image.jpg");
$data = $image->getImageBlob();
$data = $mysqli->real_escape_string($data);
$mysqli->query("INSERT INTO images (data) VALUES ('$data')");
और फिर
<img src="data:image/jpeg;base64,' . base64_encode($data) . '" />
बाद विधि के साथ
साथ छवि प्रदर्शित, हम 1/3 संग्रहण स्थान बचा। MySQL डेटाबेस में छवियों को base64
के रूप में स्टोर करना अधिक आम क्यों है?
अद्यतन: लाभों के बारे में कई बहस और डेटाबेस में छवियों को संग्रहीत करने का नुकसान कर रहे हैं, और ज्यादातर लोगों का मानना है कि एक व्यावहारिक दृष्टिकोण नहीं है। वैसे भी, मुझे लगता है कि हम डेटाबेस में छवि स्टोर करते हैं, और ऐसा करने के लिए सबसे अच्छी विधि पर चर्चा करते हैं।
तो क्यों base64 डेटा के रूप में फ़ाइल में डेटा एकत्र करने के लिए निर्णय लेने से एक फाइल करने के लिए डेटा सेव करें और डेटाबेस – Fredrik
में केवल फ़ाइल स्थान या यूआरएल की दुकान @Fredrik? हम मूल छवि फ़ाइल को आसानी से सहेज सकते हैं। – Googlebot
मुझे लगा कि आप इसे आईफोन या कुछ और डिवाइस से भेज रहे थे। फिर आप कच्चे डेटा को नहीं भेजना चाहते हैं लेकिन JSON में बेस 64 स्ट्रिंग या इसके बजाय कुछ नहीं चाहते हैं। – Fredrik