2009-12-10 10 views
6

मैं अपने रूप में अपलोड अधिकतम फ़ाइल आकार सेट कर रहा हूं:PHP, ज़ेंड फ्रेमवर्क: अपलोड अधिकतम फ़ाइलसाइज़ कैसे सेट करें?

$file = new Zend_Form_Element_File('file'); 
$file->setLabel('File to upload:') 
    ->setRequired(true) 
    ->addValidator('NotEmpty') 
    ->addValidator('Count', false, 1) 
    ->addValidator('Size', false, 10485760) //10MB = 10,485,760 bytes 
    ->setMaxFileSize(10485760) 
    ->setDestination(APPLICATION_UPLOADS_DIR); 
$this->addElement($file); 

लेकिन मैं अपने Zend फ्रेमवर्क आवेदन में यह त्रुटि संदेश हो रही है:

Notice: Your 'upload_max_filesize' config setting limits the maximum filesize to '2097152'. You tried to set '10485760' in /location/to/Zend/Form/Element/File.php on line 620 

क्या मैं गलत कर रहा हूँ?

उत्तर

12

upload_max_filesize PHP की कॉन्फ़िगरेशन में एक विकल्प है, और ज़ेंड फ्रेमवर्क से स्वतंत्र है।

यदि आपको उस अधिकतम अपलोड आकार को संशोधित करने की आवश्यकता है, तो आपको इसे अपने php.ini फ़ाइल में सेट करना चाहिए - ध्यान दें कि आपको निश्चित रूप से post_max_size को संशोधित करना होगा।

+0

मैं इन्हें अपनी application.ini फ़ाइल में phpSettings.post_max_size के रूप में सेट करने का प्रयास कर रहा हूं लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है, क्या मैं इसे सेट कर सकता हूं? किसी तरह के समारोह की तरह? set_post_max_size() यदि ऐसा कोई फ़ंक्शन मौजूद है? – Andrew

+0

यह सुनिश्चित नहीं है कि इसे PHP कोड से कॉन्फ़िगर किया जा सकता है, वास्तव में, अपलोड किए गए डेटा/फ़ाइल से निपटने के रूप में अपाचे + PHP द्वारा आपकी स्क्रिप्ट से पहले भी वास्तव में शुरू होता है ... –

+0

मुझे विश्वास है कि आप PHP कोड, ini_set से कॉन्फ़िगर कर सकते हैं ('post_max_size', 10485760); –

-2

क्या आपने php.ini में डिफ़ॉल्ट अधिकतम आकार को अधिलेखित किया है?

5

मुझे पता है कि यह कुछ समय पहले पूछा गया था, लेकिन उत्तर अभी भी प्रासंगिक है, और वास्तव में इस संदेश में नहीं।

मूल पोस्टर ने कहा:

Notice: Your 'upload_max_filesize' config setting limits the maximum filesize to '2097152'. You tried to set '10485760' in /location/to/Zend/Form/Element/File.php on line 620 

और एक और नोट में: ini_set ('post_max_size', 10485760)

:

मैं नहीं इस काम करने के लिए प्राप्त करने में सक्षम था

तकनीकी रूप से क्लास विधि setMaxFileSize(), ini_set जैसी ही चीज कर रही है।

काफी हद तक अनियंत्रित क्या है, लेकिन यहां लागू होता है कि आपको इस मूल्य को किसी भी चीज़ को संशोधित करने की अनुमति है जिसे आप चाहते हैं स्टार्टअप पर पढ़ने वाले php.ini में मान से अधिक नहीं है।

उदाहरण के लिए, * डिफ़ॉल्ट मान * nix 2M है। यदि आपने php.ini को संशोधित नहीं किया है, तो आप केवल 0 से 20 9 7152 तक इस मान को ओवरराइट कर पाएंगे।

एक अंतिम नोट। जैसा कि पास्कल मार्टिन की पोस्ट में उल्लेखित है, यह उल्लेख किया गया है कि upload_max_filesize और post_max_size कुछ हद तक हाथ में जाते हैं। विचार करने के लिए कुछ और बात यह है कि यदि आप इन मानों को कुछ हद तक बड़ी संख्या में बना रहे हैं, तो आप शायद यह सुनिश्चित करना चाहते हैं कि आपकी स्मृति_limit मान को भी माना जाता है क्योंकि आपकी स्मृति स्क्रिप्ट मेमोरी थकावट के कारण विफल हो जाएगी।

+1

धन्यवाद। बहुत उपयोगी! – Andrew

+0

php.ini में परिभाषित मान से अधिक नहीं होने के हिस्से के लिए धन्यवाद ... आप सही हैं, यह बिल्कुल दस्तावेज नहीं है और इससे मुझे बहुत समय बर्बाद कर दिया गया है! = / – MDT

1

डिफ़ॉल्ट रूप से upload_max_filesize PHP सेटिंग्स में 2 एमबी है, जो आपकी अपलोड विधि में अधिकतम फ़ाइल आकार से स्वतंत्र है। आप php.ini फ़ाइल में upload_max_filesize बढ़ा सकते हैं।

या आप इसे अपने प्रोजेक्ट में भी बदल सकते हैं। Htaccess फ़ाइल उस तरीके से केवल उस प्रोजेक्ट के लिए हैं। उदाहरण के लिए: -

php_value upload_max_filesize 20M 
php_value post_max_size 25M 
php_value memory_limit 100M 

लेकिन post_max_sizeकी तुलना में अधिक upload_max_filesize और memory_limit से अधिक post_max_size होना चाहिए रखें।

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