परिचय: "फ़ाइल बहुत बड़ी है" — क्या यह दर्द आपको भी पता है?
\n\nक्या आपने कभी अपनी हाई-रेज़ोल्यूशन फ़ोटो, ब्लॉग के लिए वीडियो या दस्तावेज़ों का ZIP-आर्काइव वेबसाइट पर अपलोड करने की कोशिश की, और अचानक यह निर्दयी एरर देखी: "अपलोड फ़ाइल का अधिकतम आकार पार हो गया"? अगर हाँ — तो आप अकेले नहीं हैं। Stack Overflow पर सवाल 'Change the maximum upload file size' ने हज़ारों व्यूज़ जमा किए हैं, जिसका मतलब है कि लाखों डेवलपर्स (नौसिखियों से लेकर प्रोफेशनल्स तक) इस दीवार से टकराए हैं।
\n\nशैक्षिक पोर्टल PythonLib पर हम सिर्फ़ कोड कॉपी करना नहीं, बल्कि यह समझना सिखाते हैं कि सब कुछ अंदर से कैसे काम करता है। आज हम सरल भाषा में, लाइव उदाहरणों के साथ, समझेंगे कि PHP में अपलोड सीमा कैसे बदलें। आप जानेंगे कि सेटिंग्स कहाँ छिपी हैं, वे हमेशा काम क्यों नहीं करतीं, और सबसे आम गलतियों से कैसे बचें। चलिए शुरू करते हैं!
\n\nPHP बड़ी फ़ाइलों को अपलोड क्यों नहीं करने देता?
\n\nडिफ़ॉल्ट रूप से, PHP काफ़ी सीमित है। यह केवल 2 मेगाबाइट तक की फ़ाइलें अपलोड करने की अनुमति देता है (और कुछ पुराने वर्ज़न में इससे भी कम)। यह सुरक्षा कारणों से किया गया है: कल्पना करें कि कोई हमलावर आपके सर्वर पर एक गीगाबाइट की फ़ाइल अपलोड कर दे और साइट को क्रैश कर दे। लेकिन वैध कार्यों (जैसे पोर्टफोलियो या वीडियो ट्यूटोरियल अपलोड करना) के लिए यह बहुत कम है।
\n\nयह सीमा कहाँ से आती है? इसका जवाब PHP कॉन्फ़िगरेशन की तीन मुख्य डायरेक्टिव्स में छिपा है:
\n\n- \n
upload_max_filesize— एक अपलोड की गई फ़ाइल का अधिकतम आकार। \n post_max_size— POST विधि से भेजे गए सभी डेटा का अधिकतम आकार (फ़ाइलों और फ़ॉर्म के टेक्स्ट फ़ील्ड सहित)। \n max_execution_time— वह समय जो PHP किसी स्क्रिप्ट को निष्पादित करने में खर्च कर सकता है (बड़ी फ़ाइल अपलोड करने में मिनट लग सकते हैं)। \n
यदि आप केवल upload_max_filesize बढ़ाते हैं, लेकिन post_max_size के बारे में भूल जाते हैं, तो अपलोड फिर भी एरर के साथ फेल हो जाएगा। यह ऐसा है जैसे हाथी को डिक्की में ठूंसने की कोशिश करना, जब डिक्की खुद हाथी से छोटी हो। या जब आपके पास बड़ा बक्सा (फ़ाइल) हो, लेकिन डाक के बक्से का दरवाज़ा (post_max_size) बहुत संकरा हो।
PHP सेटिंग्स कहाँ रहती हैं? सफलता के तीन रास्ते
\n\nअपलोड फ़ाइल का अधिकतम आकार बदलने के तीन तरीके हैं। कौन सा चुनना है — यह आपके होस्टिंग और एक्सेस लेवल पर निर्भर करता है। आइए प्रत्येक को समझें।
\n\nतरीका 1. php.ini को एडिट करें (गोल्ड स्टैंडर्ड)
\n\nphp.ini फ़ाइल PHP का मुख्य "कंट्रोल पैनल" है। यदि आपके पास सर्वर (VPS, डेडिकेटेड सर्वर या लोकल कंप्यूटर) तक पहुँच है, तो यह सबसे भरोसेमंद तरीका है।
अपना php.ini ढूँढें। यह आमतौर पर यहाँ होता है:
- \n
- Linux:
/etc/php/8.x/apache2/php.iniया/etc/php/8.x/cli/php.ini\n - Windows:
C:\\xampp\\php\\php.ini(XAMPP के लिए) याC:\\wamp64\\bin\\php\\php8.x\\php.ini\n
फ़ाइल खोलें और निम्नलिखित पंक्तियाँ ढूँढें (या जोड़ें):
\n\n; एक फ़ाइल का अधिकतम आकार (अब 50 MB)\nupload_max_filesize = 50M\n\n; सभी POST-डेटा का अधिकतम आकार (upload_max_filesize से बड़ा या बराबर होना चाहिए)\npost_max_size = 64M\n\n; स्क्रिप्ट निष्पादन का अधिकतम समय सेकंड में (बड़ी फ़ाइलों के लिए 300 तक बढ़ाएँ)\nmax_execution_time = 300\n\n; डेटा प्राप्त करने का अधिकतम समय (कम से कम 5 मिनट रखने की सलाह दी जाती है)\nmax_input_time = 300\n\n; एक स्क्रिप्ट के लिए मेमोरी (यदि फ़ाइल बड़ी है, तो 128M या 256M तक बढ़ाएँ)\nmemory_limit = 128M\n\nबदलावों के बाद, वेब सर्वर को पुनरारंभ करना न भूलें:
\nsudo systemctl restart apache2 # Apache के लिए\nsudo systemctl restart nginx # Nginx के लिए\n\nहो गया! अब आपकी साइट 50 MB तक की फ़ाइलें स्वीकार कर सकती है। लेकिन याद रखें: post_max_size हमेशा upload_max_filesize से कुछ मेगाबाइट बड़ा होना चाहिए, ताकि फ़ॉर्म के सर्विस हेडर के लिए जगह बची रहे।