PHP में अपलोड की जा सकने वाली फ़ाइल का अधिकतम आकार कैसे बदलें: पूर्ण गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

PHP 2 MB से बड़ी फ़ाइल अपलोड क्यों नहीं करने देता?

\n

क्या आपने कभी वेबसाइट पर अच्छी क्वालिटी की फोटो, प्रेजेंटेशन या वीडियो अपलोड करने की कोशिश की और PHP ने सूखेपन से जवाब दिया: «The uploaded file exceeds the upload_max_filesize directive in php.ini»? परिचित लगता है? यह एक क्लासिक समस्या है जो हर दूसरे प्रोजेक्ट में आती है। Stack Overflow पर «Change the maximum upload file size» प्रश्न को दसियों हज़ार बार देखा गया है - और यह कोई संयोग नहीं है।

\n

इस लेख में, हम समझेंगे कि PHP में फ़ाइल अपलोड पर प्रतिबंध कैसे काम करता है, इसे कहाँ सेट किया जाता है और सीमा को सही तरीके से कैसे बढ़ाया जाए। आप न केवल upload_max_filesize के बारे में जानेंगे, बल्कि उन छिपी समस्याओं के बारे में भी जानेंगे जो आपके सभी प्रयासों को बेकार कर सकती हैं।

\n\n

PHP फ़ाइल अपलोड को कैसे प्रतिबंधित करता है?

\n

जब आप फॉर्म के माध्यम से फ़ाइल भेजते हैं, तो PHP कई स्तरों पर उसके आकार की जाँच करता है। यदि उनमें से कोई भी फ़ाइल को पास नहीं करता है, तो फ़ाइल अपलोड नहीं होगी। आइए तीन मुख्य पैरामीटर समझते हैं जिन्हें बदलना आवश्यक है ताकि change the maximum upload file size सही ढंग से काम करे।

\n\n

1. upload_max_filesize - फ़ाइल पर सीधी सीमा

\n

यह सबसे स्पष्ट पैरामीटर है। यह एक अपलोड की जाने वाली फ़ाइल का अधिकतम आकार निर्धारित करता है। PHP में डिफ़ॉल्ट रूप से 2M (2 मेगाबाइट) सेट होता है। इसे बढ़ाने के लिए, उदाहरण के लिए 100 MB तक, लिखें:

\n
upload_max_filesize = 100M
\n\n

2. post_max_size - पूरे POST अनुरोध का आकार

\n

यहाँ कई लोग फँस जाते हैं। भले ही आपने upload_max_filesize बढ़ा दिया हो, लेकिन post_max_size के बारे में भूल गए, तो अपलोड फिर भी काम नहीं करेगा। क्यों? क्योंकि फ़ाइल POST अनुरोध के अंदर भेजी जाती है, और यदि पूरे अनुरोध का आकार सीमा से अधिक है - तो PHP इसे बस काट देगा।

\n

नियम सरल है: post_max_size, upload_max_filesize से बड़ा होना चाहिए। आमतौर पर इसे 20-30% अधिक रखा जाता है। उदाहरण:

\n
post_max_size = 120M
\n\n

3. max_execution_time - अपलोड करने का समय

\n

बड़ी फ़ाइलें तुरंत अपलोड नहीं होतीं। यदि फ़ाइल 100 MB की है और इंटरनेट धीमा है, तो स्क्रिप्ट निर्धारित समय में काम पूरा नहीं कर पाएगी। डिफ़ॉल्ट रूप से max_execution_time = 30 सेकंड है। बड़ी फ़ाइलों के लिए इसे 300-600 सेकंड तक बढ़ाएँ:

\n
max_execution_time = 600
\n\n

4. memory_limit - प्रोसेसिंग के लिए मेमोरी

\n

कुछ PHP स्क्रिप्ट प्रोसेसिंग से पहले फ़ाइल को मेमोरी में लोड करती हैं। यदि memory_limit फ़ाइल के आकार से छोटा है - तो आपको एक त्रुटि मिलेगी। इसे post_max_size से बड़ा रखने की सलाह दी जाती है:

\n
memory_limit = 256M
\n\n

सेटिंग्स कहाँ और कैसे बदलें?

\n

अब जब हम जानते हैं कि change the maximum upload file size के लिए कौन से पैरामीटर जिम्मेदार हैं, तो आइए समझते हैं कि उन्हें कहाँ बदलना है। आपके पास तीन मुख्य तरीके हैं:

\n\n

तरीका 1: php.ini (मुख्य कॉन्फ़िगरेशन फ़ाइल)

\n

यह सबसे विश्वसनीय तरीका है। सर्वर पर php.ini फ़ाइल ढूँढें (आमतौर पर यह /etc/php/ या /usr/local/etc/ में होती है)। इसे खोलें और आवश्यक डायरेक्टिव ढूँढें। यदि वे नहीं हैं - तो फ़ाइल के अंत में जोड़ें:

\n
; फ़ाइल अपलोड की अनुमति दें (On होना चाहिए)\nfile_uploads = On\n\n; एक फ़ाइल का अधिकतम आकार\nupload_max_filesize = 100M\n\n; POST अनुरोध का अधिकतम आकार\npost_max_size = 120M\n\n; स्क्रिप्ट निष्पादन समय\nmax_execution_time = 600\n\n; मेमोरी सीमा\nmemory_limit = 256M
\n

बदलावों के बाद वेब सर्वर को पुनरारंभ करना न भूलें:

\n
sudo service apache2 restart   # Apache के लिए\nsudo service nginx restart     # Nginx के लिए
\n\n

तरीका 2: .htaccess (केवल Apache के लिए)

\n

यदि आपके पास php.ini तक पहुँच नहीं है (उदाहरण के लिए, होस्टिंग पर), तो आप साइट की रूट डायरेक्टरी में .htaccess के माध्यम से प्रयास कर सकते हैं:

\n
php_value upload_max_filesize 100M\nphp_value post_max_size 120M\nphp_value max_execution_time 600\nphp_value memory_limit 256M
\n

महत्वपूर्ण: यह तरीका केवल

ब्लॉग

पुस्तक अनुशंसाएँ