2011-12-26 9 views
5

मैं एएसपीएनटी एमवीसी का उपयोग कर रहा हूं और एक ऐसा अनुभाग है जहां कोई उपयोगकर्ता छवियां अपलोड कर सकता है। मैं सोच रहा हूं कि मुझे उन्हें कहां स्टोर करना चाहिए।क्या मुझे अपलोड (आईएमजी फाइल) को App_Data में सहेजना चाहिए?

मैं this tutorial का पालन कर रहा था और वह इसे app_data में संग्रहीत करता प्रतीत होता है। हालांकि मैं एक और व्यक्ति को कहता हूं कि इसे केवल अपना डेटाबेस रखना चाहिए।

इसलिए सुनिश्चित नहीं है कि app_data का उपयोग करने के लिए क्या फायदे हैं। मैं एक साझा होस्टिंग पर हूं इसलिए मुझे नहीं पता कि इससे कोई फर्क पड़ता है या नहीं।

संपादित

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

+0

डेटाबेस में फ़ाइल सिस्टम और छवि पथ में छवि सामग्री स्टोर करें। क्यूं कर? [इस पोस्ट] पढ़ें (http: // stackoverflow।कॉम/प्रश्न/561447/स्टोर-चित्र-जैसी-फाइल-इन-द-डेटाबेस-के-ए-वेब-ऐप) –

+0

छोटी टिप्पणी: यदि आपको भविष्य में क्षैतिज रूप से स्केल करने की आवश्यकता है, तो अपलोड की गई सामग्री संग्रहीत करना आपके वेब सर्वर पर एक फ़ोल्डर एक समस्या बन जाएगा। यदि यह आपके लिए चिंता का विषय है, तो नीचे दिए गए कुछ उत्तरों द्वारा सुझाए गए एज़ूर ब्लॉब स्टोरेज, अमेज़ॅन सरल स्टोरेज या यहां तक ​​कि डेटाबेस जैसे सेवाओं का उपयोग करने पर विचार करें। – santiagoIT

उत्तर

4

ट्यूटोरियल एक साधारण उदाहरण है - और यदि आप टिप्पणियां पढ़ते हैं, तो मूल कोड सिर्फ uploads निर्देशिका में सहेजा गया, app_data दृष्टि में नहीं।

इसे app_data में बदल दिया गया क्योंकि यह एक विशेष फ़ोल्डर है - एक जो कोड के निष्पादन की अनुमति नहीं देगा।

और आप सही ढंग से समझ गए हैं - app_data वास्तव में फ़ाइल आधारित डेटाबेस रखने के लिए है। यह फ़ोल्डर का अर्थ है। चूंकि इसमें ऐसी बचत छवियां सही काम की तरह महसूस नहीं करती हैं।

यदि आप निश्चित हैं कि केवल छवियां अपलोड हो जाएंगी (और आप इसे नियंत्रित करेंगे), तो मैं /uploads निर्देशिका का सुझाव दूंगा - छवियों के लिए एक आरक्षित स्थान जो कोड निष्पादन की अनुमति नहीं देगा (कुछ ऐसा जो आपको आईआईएस के माध्यम से नियंत्रित करने में सक्षम होना चाहिए)।

+0

क्या अपलोड एक विशेष फ़ोल्डर या कुछ है जो आपने अभी बनाया है? – chobo2

+0

@ chobo2 - बस कुछ ऐसा जो मैंने उल्लेख किया है, मूल रूप से आपके द्वारा लिंक किए गए आलेख में किया गया था। – Oded

+0

मुझे नहीं पता कि आईआईएस पर मेरे पास कितना नियंत्रण है जैसा कि मैंने कहा था कि मैं साझा होस्टिंग का उपयोग कर रहा हूं। मैं डेटाबेस में सापेक्ष पथ संग्रहीत करूँगा और फिर पूरा पथ प्राप्त करूँगा जिसका उपयोग आईएमजी टैग में किया जाएगा। तो मुझे यकीन नहीं है कि क्या कोड निष्पादन के रूप में गिना जाता है। – chobo2

1

मैं कहूंगा कि बाद में उन छवियों के साथ आप क्या करेंगे। यदि आप उन छवियों को एक आईएमजी टैग में उपयोग करते हैं, तो आप उन्हें सामग्री/फ़ोल्डर संरचना में कहीं भी सहेज सकते हैं।

यदि आपको उन्हें बाहर से पहुंचने की आवश्यकता नहीं है, या उन्हें स्ट्रीम करने की आवश्यकता नहीं है, तो आप उन्हें वेब रूट से स्टोर कर सकते हैं यदि होस्टर इसके लिए अनुमति देता है।

मैं उन्हें app_data में संग्रहीत नहीं करता, जैसा कि मैं - व्यक्तिगत रूप से सोचता हूं कि यह डेटाबेस को स्टोर करने के लिए एक और सम्मेलन है। अधिकांश उत्पादक उस उत्पाद से परिचित नहीं हैं, वे छवि के लिए वहां नहीं दिखेंगे।

लेकिन: आप एक डीबी में बाइनरी स्टोर कर सकते हैं (भले ही यह संभवतः सबसे अच्छी बात नहीं है), इसलिए एक ही निर्देशिका में एक फ़ाइल को इंगित करने वाले डीबी में एक संदर्भ फिर से समझ में आता है।

हालांकि, मुझे लगता है कि तकनीकी प्रश्न की तुलना में यह एक राय बात है।

0

मैं उन्हें डेटाबेस में स्टोर करना पसंद करता हूं। फ़ाइल सिस्टम पर छवियों को संग्रहीत करते समय मैंने पाया है कि उन्हें प्रबंधित करना थोड़ा कठिन हो सकता है। डेटाबेस के साथ आप फ़ाइलों का नाम बदल सकते हैं, उन्हें हटा सकते हैं, उन्हें कॉपी कर सकते हैं आदि। आप फ़ाइल सिस्टम पर होने पर भी ऐसा ही कर सकते हैं, लेकिन इसमें कुछ स्क्रिप्टिंग ज्ञान लेते हैं।

प्लस मैं पथ और फ़ाइल स्थानों को प्रबंधित नहीं करना पसंद करता, जो डेटाबेस के लिए एक और वोट है। वे पथ मान हमेशा web.config में अपना रास्ता बनाते हैं और इसे तैनात और प्रबंधित करना अधिक कठिन हो सकता है।

+1

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

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