2010-05-18 15 views
6

phpmyadmin के साथ बनाई गई एक MYSQL तालिका में चित्र (यूआरएल, तस्वीर नहीं) डालने का कोई तरीका है? और यदि वहां है कि मैं उस तस्वीर को प्राप्त करना चाहता हूं और इसे पृष्ठ में डालना चाहता हूं, तो मुझे क्या करना चाहिए? :)क्या मैं एक MYSQL डीबी तालिका में एक छवि डाल सकता हूं?

+1

उपयोग ब्लॉब प्रकार, यह 0 और 1 के – Karthik

+1

के रूप में छवि डालने और बचाने के लिए सुनिश्चित कर देगा (और जवाब दें) उन 0 और 1 के अनुरूप उचित माइम-प्रकार के साथ ... – aioobe

उत्तर

7

यह संभव है (बीएलओबी प्रकार का उपयोग करके) लेकिन फाइल को सिस्टम में बस स्टोर करने के लिए लगभग हमेशा बेहतर होता है और डेटाबेस में छवि को बस स्टोर करता है।

कुछ वजहों मेरे सिर के ऊपर से:

  1. BLOBs अपने डेटाबेस का आकार balloon जाएगा, बैकअप और संभवतः अधिक मुश्किल पुनर्स्थापित करता है (हालांकि कुछ लोगों का तर्क है हो सकता है कि यह आप के बाद से यह आसान बना देता है केवल डेटाबेस के बजाय डेटाबेस का बैक अप लेना होगा और फाइलों का एक गुच्छा)।

  2. बीएलओबी के रूप में डेटा संग्रहीत करने से प्रदर्शन समस्याएं हो सकती हैं यदि आपके पास आलसी कोड है जो select * का उपयोग करता है।

  3. फाइल सिस्टम से छवियों की सेवा करना डेटाबेस से उनकी सेवा करने से अधिक तेज़ होगा, और डीबी सर्वर पर लोड कम करेगा।

  4. आप छवियों की सेवा के साथ कुछ लचीलापन प्राप्त करते हैं - उदाहरण के लिए यदि आप उन्हें भविष्य में सीडीएन में ले जाना चाहते हैं।

0

आप अक्सर छवि प्राप्त करते समय हो जाएगा, तो आप शायद बेहतर होगा एक फ़ाइल के रूप में संग्रहीत करने और इसे करने के लिए पथ की बचत, छवि प्राप्त करते समय पर आप एक डेटाबेस रन बचाने के लिए।

अन्यथा, छवि फ़ाइल की सामग्री को BLOB कॉलम में संग्रहीत करें, और फिर HTML में <img src="image.php?id=1234" /> प्रिंट करें।

image.php डेटाबेस में आईडी 1234 के साथ छवि को देखना चाहिए, उस बीएलओबी कॉलम की सामग्री प्राप्त करना चाहिए, और सही HTTP शीर्षलेख की सेवा के बाद इसे प्रिंट करना चाहिए, उदा। header('Content-type: image/gif');

लेकिन गंभीरता से। बस छवि फ़ाइल को बचाओ। यह दर्द का बहुत कम है, मैं वादा करता हूँ।

0

जब पृष्ठभूमि छवियों या मेनू आइकन आदि जैसे स्थिर संसाधनों की बात आती है, तो मैंने कभी भी उन्हें किसी डेटाबेस में संग्रहीत नहीं देखा है। गतिशील सामग्री जैसे उपयोगकर्ता अपलोड की गई छवियों के लिए, यह असामान्य नहीं है।

डेटाबेस में छवियों को संग्रहीत करने के कुछ प्रो और कॉन हैं।

लाभ:

  • यह तकनीकी रूप से अन्य डेटा से अलग नहीं है। बस और, बाइनरी प्रारूप में।
  • छवियों का बाकी डेटाबेस के साथ बैक अप लिया गया है।
  • सिंक्रनाइज़ेशन से बाहर हो रही है

कमियां (डेटाबेस में किसी गैर-मौजूद छवि की ओर इशारा करते डेटाबेस में एक पथ, या unreferenced छवियों वाले) का कोई सिर दर्द:

  • संग्रहीत अलग-अलग फाइलें ठीक उसी प्रकार होती हैं जो फाइल सिस्टम की तरफ तैयार होती है, इसलिए यह संभवत: बेहतर पैमाने पर बेहतर होगा।
  • छवियों को मैन्युअल रूप से डीबग/देखने के लिए
  • वेब सर्वर सीधे छवियों की सेवा कर सकता है (डेटाबेस से सामग्री लोड करने के लिए अतिरिक्त कोड की आवश्यकता नहीं है और उचित माइम प्रकार आदि प्रदान करता है)।

व्यक्तिगत रूप से मैंने हमेशा पाया है कि लाभ कमियों से अधिक है और हमेशा डेटाबेस में छवियों (माइम प्रकार के साथ) था। मैंने कभी भी किसी भी कमी या प्रदर्शन के मुद्दों पर ध्यान नहीं दिया है, लेकिन दूसरी ओर मैंने वास्तव में बड़ी वेबसाइटों पर कभी काम नहीं किया है।

संबंधित सवाल और संसाधन:

संबंधित मुद्दे