अधिकतम अपलोड फ़ाइल आकार बदलें


512

मेरे पास एक ऐसी पीसी पर होस्ट की गई वेबसाइट है, जिसकी मुझे कोई पहुंच नहीं है। मेरे पास एक अपलोड फ़ॉर्म है जिससे लोग 30 एमबी बड़े तक एमपी 3 फ़ाइलों को अपलोड कर सकते हैं। मेरा सर्वर साइड स्क्रिप्ट PHP में किया जाता है।

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

जवाबों:


876

आपको अपना upload_max_filesizeऔर post_max_sizephp.ini का मान सेट करना होगा:

; Maximum allowed size for uploaded files.
upload_max_filesize = 40M

; Must be greater than or equal to upload_max_filesize
post_max_size = 40M

Php.ini फ़ाइल (एस) को संशोधित करने के बाद, आपको नए कॉन्फ़िगरेशन का उपयोग करने के लिए अपने HTTP सर्वर को पुनरारंभ करना होगा।

यदि आप अपना php.ini नहीं बदल सकते हैं, तो आप भाग्य से बाहर हैं। आप इन मानों को रन-टाइम में नहीं बदल सकते; php.ini में निर्दिष्ट मूल्य से बड़ी फ़ाइल के अपलोड उस समय तक विफल हो जाएंगे जब निष्पादन आपके कॉल पर पहुंच जाता है ini_set

मुख्य php.ini निर्देशों का विवरण देखें ।


4
क्या आप शायद डिफ़ॉल्ट मार्ग को जानते हैं जो php.ini फ़ाइल संग्रहीत है?
यो माँ

1
लिनक्स पर, यह आमतौर पर / etc / php / या उन रेखाओं के साथ कुछ होता है। यदि आप एक साझा सर्वर पर हैं, तो आप भाग्य से बाहर हैं जब तक कि आपका होस्टिंग प्रदाता एक प्रति उपयोगकर्ता php.ini फ़ाइल प्रदान करने के लिए पर्याप्त उदार न हो।
जोहान्स गोर्सेट

4
यदि आपका विंडोज़ के तहत WAMP का उपयोग कर रहा है, तो आप इसे WAMP आइकन> PHP -> php.ini पर क्लिक करके संपादित कर सकते हैं। डेबियन में, मेरी कॉन्फिग फ़ाइल / etc / php5 / apache2 में है।
meagar

19
मेरा सुझाव है कि एक उच्च आकार सेट करें post_max_size। पोस्ट किए गए फ़ील्ड का समग्र आकार फ़ाइलों की तुलना में अधिक हो सकता है, इसलिए यदि आपके पास किसी 40MB फ़ाइल को अपलोड करने के किनारे का मामला है, तो यह अधिक होने के कारण विफल हो जाएगा post_max_size
acme

2
कृपया ध्यान दें कि memory_limit अपलोड आकार को भी सीमित करता है।
डैनियल

151

आप इसे एक .htaccessफ़ाइल के माध्यम से बदल सकते हैं ।

.htaccessफ़ाइलें आपकी .phpफ़ाइलों के समान निर्देशिका में संग्रहीत की जाती हैं। वे उस फ़ोल्डर और सभी उप-फ़ोल्डरों के लिए कॉन्फ़िगरेशन को संशोधित करते हैं। आप बस .htaccessअपनी पसंद की निर्देशिका में एक फ़ाइल बनाकर उनका उपयोग करते हैं (या यदि मौजूद है तो उसे संशोधित करें)।

निम्नलिखित आपको अपनी अपलोड सीमा को बढ़ाने में सक्षम होना चाहिए (यदि सर्वर प्रदाता PHP के माध्यम से परिवर्तन की अनुमति देता है .htaccess)।

php_value upload_max_filesize 40M
php_value post_max_size 42M

3
ऐसा लगता है कि यह हमेशा काम नहीं करता है। .Htaccess में उचित मूल्य निर्धारित करने वाली मेरी देव मशीनों पर काम किया। साझा होस्टिंग पर हालांकि यह सेटिंग काम नहीं करती है लेकिन त्रुटि संदेश दिखा रहा है कि अधिकतम अनुमत अपलोड आकार वह मूल्य है जो मैंने .htaccess में सेट किया है। तो बहुत विकट स्थिति होती है।
यूजेनियु टोरिका

5
लगता है कि इसे जोड़ने में .htaccess केवल तभी काम करता है जब आप Apache चला रहे हों। यह कोशिश करो और मेरे लिए ठीक काम करता है।
AngelGris

यह काम नहीं करता है अगर php.ini में इन 2 लाइनों को अनियंत्रित किया गया था:; उपयोगकर्ता द्वारा परिभाषित php.ini (.htaccess) फ़ाइलों के लिए नाम। डिफ़ॉल्ट ".user.ini" है ;user_ini.filename = ".user.ini" ; इस सुविधा को अक्षम करने के लिए इस विकल्प को रिक्त मान पर सेट करें;user_ini.filename =
एलन डीप

ध्यान देने योग्य बात यह है कि यदि आप अपाचे सीजीआई या फास्ट सीजीआई का उपयोग कर रहे हैं तो यह 500 त्रुटियों का कारण होगा। इस के अंदर लपेटें <IfModule mod_php7.c> </ IfModule>
Shardj

59

मुझे भी यही समस्या थी और मैंने एक .user.ini फ़ाइल बनाई और उसे उस निर्देशिका में रखा जिसमें अपलोड स्क्रिप्ट स्थित थी। उस फ़ाइल के अंदर मैंने इन दो मानों को सेट किया है:

  upload_max_filesize = 40M

  post_max_size = 40M

और यह मेरे लिए बहुत अच्छा काम किया!


2
महान। Fastcgi सक्षम के साथ भी काम करता है। PHP5.3 या नए की आवश्यकता है।
कॉटैनिक जूल

1
ठीक है, यह एक साझा सर्वर पर काम करता है जब कुछ और काम नहीं करेगा। शानदार खोज।
एडवर्ड पॉटर

55

आप ini_set फ़ंक्शन (केवल 5.3 के नीचे PHP संस्करण के लिए) का उपयोग कर सकते हैं :

ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');

जैसे @acme ने कहा, php 5.3 और इसके बाद की सेटिंग में PHP_INI_PERDIR निर्देश हैं ताकि उन्हें ini_set का उपयोग करके सेट नहीं किया जा सके। आप इसके बजाय user.ini का उपयोग कर सकते हैं।


38
हाल के PHP संस्करणों में ये ini-settings केवल PHP_INI_PERDIR हैं, इसलिए आप उन्हें अपनी स्क्रिप्ट में सेट नहीं कर सकते। अधिक जानकारी के लिए यहां देखें ।
acme

46

Ini फ़ाइल का पता लगाने के लिए, पहले चलाएँ

php -i | grep -i "loaded configuration file"

फिर फ़ाइल खोलें और बदलें

upload_max_filesize = 2M
post_max_size = 2M

उदाहरण के लिए 2M की जगह आप चाहते हैं, उदाहरण के लिए 100M।

मैं एक ब्लॉग पोस्ट के बारे में थोड़ा और जानकारी के साथ भी http://www.seanbehan.com/how-to-increase-or-change-the-file-upload-size-in-the-php-ini- फ़ाइल के लिए वर्डप्रेस


5
यह फ़ाइल को दिखाता है /etc/php5/cli/php.iniलेकिन मेरी कॉन्फ़िग फ़ाइल है /etc/php5/apache2/php.ini। किसी प्रकार का भ्रामक।
फ्रेड्रिक गॉस

वहाँ 2 php.ini फाइलें हैं ... और जवाब में उस आदेश के साथ, यह आपको दिखाता है कि आप किसका उपयोग कर रहे हैं! इसलिए आपको प्रभावी होने के लिए बदलाव करने की आवश्यकता है!
lewis4u

40

मैं अतीत में एक ही समस्या है .. और मैं इसे .htaccessफ़ाइल के माध्यम से तय किया

जब आप php कॉन्फ़िगरेशन पर परिवर्तन करते हैं, तो आपको टैग .htaccessमें कॉन्फ़िगरेशन रखना चाहिए IfModule, अन्य जो आंतरिक सर्वर त्रुटि उत्पन्न करेगा।

यह एक उदाहरण है, यह मेरे लिए ठीक काम करता है:

<IfModule mod_php5.c>
   php_value upload_max_filesize 40M
   php_value post_max_size 40M
</IfModule>

और अगर आप अधिक समझना चाहते हैं तो यह php संदर्भ है। http://php.net/manual/en/configuration.changes.php


5
बशर्ते आपके पास ओवरराइड क्षमताएं हों।
पूर्ण

3
समर्थन PHP.7 करने के लिए के साथ एक ही ब्लॉक जोड़ें: <IfModule mod_php7.c>
मुस्तफा

16

मैंने इस मुद्दे .user.iniको निर्देशिका में एक फाइल बनाकर हल किया जहां PHP फ़ाइल स्क्रिप्ट्स का निवास है (इसका अर्थ है कि इस निर्देशिका में कोई भी PHP स्क्रिप्ट नई फ़ाइल आकार सीमा प्राप्त करती है)

की सामग्रियां .user.iniथीं:

upload_max_filesize = 40M
post_max_size = 40M

2
मेरे लिए यही उपाय है। बस ठीक काम करता है। यदि आप codeignitor जैसे ढांचे का उपयोग कर रहे हैं, तो ".user.ini" को index.php
Dude

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

6

मुझे भी यही समस्या थी। मैंने तीन तरीकों की कोशिश की है जो आमतौर पर सुझाए गए थे:

  1. functions.php
  2. php.ini
  3. .htaccess

अगर मेरी समस्या हल हो गई तो कोई नहीं। मैं गोडैडी का उपयोग कर रहा हूं और एक सुझाए गए समाधान पर आया हूं जो था:

  1. वेब होस्टिंग के लिए मिला है , तो प्रबंधित करें
  2. सॉफ्टवेयर के तहत PHP संस्करण का चयन करें
  3. फ़ॉन्ट के रंग में तालिका के शीर्ष दाएं कोने पर पाए गए PHP विकल्प पर स्विच का चयन करें : नीला
  4. नीचे के अधिकांश भाग पर, आपके पास अपलोड_मैक्स_फाइलिज़ = 2 एम होगा
  5. अब, इसे बदलने के लिए स्वतंत्र महसूस करें
  6. सेव बटन पर क्लिक करना सुनिश्चित करें!
  7. अब अपने wp-admin पैनल में जाएं, मीडिया चुनें फिर Add करें

देखा! अब आपके पास एक अलग अधिकतम अपलोड फ़ाइल आकार है :)


6

कई बार मैंने देखा है कि साइट बुद्धि साझा होस्टिंग php.ini फ़ाइलों में सेटिंग्स को बदलने की अनुमति नहीं देती है। एक भी टोकरा नहीं कर सकता है।। ऐसी स्थिति में व्यक्ति निम्नलिखित चीजों को आजमा सकता है

ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);

6

उत्तर थोड़े अधूरे हैं, 3 चीजें आपको करनी हैं

अपने php इंस्टालेशन के php.ini में (नोट: यदि आप सीएलआई, अपाचे या नगनेक्स के लिए चाहते हैं तो निर्भर करता है, हेरफेर करने के लिए सही php.ini ढूंढें। नगनेक्स के लिए यह आमतौर पर /etc/php/7.1/fpm7.1 में स्थित होता है जहां आपके संस्करण पर निर्भर करता है। अपाचे के लिए आमतौर पर। /etc/php/7.1/apache2)

post_max_size=500M

upload_max_filesize=500M

memory_limit=900M

या अन्य मान सेट करें। यदि आप अपाचे स्थापित करते हैं या नगनेक्स के लिए php-fpm लगाते हैं , तो Apache को पुनः आरंभ / पुनः लोड करें।


5

खैर, मैं यहां अपने 2 सेंट जोड़ना चाहूंगा।

मैं साझा वेबहोस्टिंग का उपयोग कर रहा हूं और मैंने कई बार इस समस्या का सामना किया, इसे अपने दम पर हल करने की कोशिश की लेकिन कोई फायदा नहीं हुआ। अंत में मैं विभिन्न वेब स्रोतों की जाँच करके और अपने होस्टिंग सेवा प्रदाता से संपर्क करके इसे हल करने में कामयाब रहा। मेरे प्रश्न थे कि "मैं memory_limitसाझा वेबहोस्टिंग में php मूल्य कैसे बदल सकता हूं ?", "मैं upload_max_filesizeसाझा वेबहोस्टिंग में php मूल्य कैसे बदल सकता हूं ?", "मैं max_input_varsसाझा वेबहोस्टिंग में php मूल्य कैसे बदल सकता हूं ?", "मैं पीपी मूल्य max_execution_timeको कैसे बदल सकता हूं?" साझा वेबहोस्टिंग? "," मैं max_input_timeसाझा वेबहोस्टिंग में php मूल्य कैसे बदल सकता हूं ? और php.ini या .htaccessफ़ाइल को कॉन्फ़िगर या परिवर्तित करके कई और । मैंने उन्हें बदलने की कोशिश की लेकिन समस्याएं पैदा हुईं। अंत में मैंने अपने होस्टिंग प्रदाता से संपर्क किया, और यह पता चला कि मैंने अपने php को देशी में सेट कर दिया है, उन्होंने इसे 5.6 php में बदल दिया है,

"आपका PHP 'देशी' मोड पर सेट किया गया था जिसका अर्थ है कि आप उन मूल्यों को ओवरराइड नहीं कर सकते। मैंने आपको केवल '5.6' में बदल दिया है, इसलिए आपको जाने के लिए अच्छा होना चाहिए।"

उसके बाद मैंने अपनी वेबसाइट को ftp Filezilla के माध्यम से जोड़ा, छिपी हुई फाइलों को दिखाने के लिए अपनी दोनों ftp सेवा को बनाना न भूलें और ऐसा करने के लिए आपका स्थानीय कंप्यूटर, क्योंकि .htaccessफ़ाइल मेरे स्थानीय लैपटॉप और मेरी वेबसाइट में छिपी हुई थी। यह public_html फ़ोल्डर में उपलब्ध था, मैंने अभी इसे डाउनलोड किया और फ़ाइल के अंत में निम्नलिखित कोड जोड़े और फिर इसे सर्वर पर वापस अपलोड कर दिया:

php_value memory_limit 256M
php_value post_max_size 256M
php_value upload_max_filesize 64M
php_value max_input_vars 1800
php_value max_execution_time 300
php_value max_input_time 300

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

समय के लिए सब कुछ ठीक से काम कर रहा है, अगर आप में से कोई भी कुछ समस्याओं से उबरता है तो कृपया यहां लिखें और मुझे चेतावनी दें ताकि मैं ऊपर दिखाए गए कोड बदल सकूं। वैसे, मैं कुछ तस्वीरें भी अपलोड करता हूं जो बदलाव दिखाता है।

एक और बात मैं आपके साझा वेबहोस्टिंग सेवा पर जिपआर्चिव इंस्टालेशन का उल्लेख करना लगभग भूल गया, मैंने अपने cpanel के माध्यम से php सेटिंग्स में जाकर केवल php सेलेक्टर एक्सटेंशन पर क्लिक करके और फिर zip सेक्शन पर टिक करने के लिए उस आवश्यकता को प्रबंधित किया।

धन्यवाद।

पुनश्च: मैं अच्छे अभ्यासों के लिए खुला हूं, और यदि आपको कोई बुरा अभ्यास दिखाई देता है तो कृपया मुझे बताएं, मैं उन्हें बदलने की कोशिश करूंगा। धन्यवाद।


4

शायद यह उनकी टिप्पणी पर @ seanb123 और @Fredrick गॉस के लिए एक टिप्पणी होनी चाहिए, लेकिन मेरे लिए ड्रुपल 8.1 में PHP 7 के साथ मुझे जिस फ़ाइल को संशोधित करने की आवश्यकता थी वह यहां स्थित थी:

/etc/php/7.0/apache2/php.ini

मैंने संभवत: चार अन्य php.ini फ़ाइलों को मॉड्यूल्ड किया है, जिसमें "लोडेड कॉन्फ़िगरेशन फ़ाइल" ( php -i | grep -i "loaded configuration file") और " info.php" पृष्ठ पर पाई गई एक नामक मेरी प्रणाली शामिल है, लेकिन उनमें से किसी ने भी मदद नहीं की। सही रास्ते की खोज करने की कुंजी 2012 से एक साइट पर पाई गई थी। उन्होंने कहा कि पथ "/etc/php5/apache2/php.ini"को वापस भी लाया गया था, लेकिन इसने मुझे एक सुराग दिया जहां इसे ढूंढना है। PHP7 के लिए यह PHP5 की तुलना में थोड़ा अलग है लेकिन अवधारणा समान है।

शायद यह मेरी तरह कुछ अन्यथा असहाय schmuck में मदद करेगा।

यह कहा जा रहा है, मेरे मामले में ओपी का जवाब होगा कि बॉक्स पर व्यवस्थापक विशेषाधिकारों वाले किसी व्यक्ति को यह करना होगा।

साइट जिसने मेरी मदद की: http://www.evilbox.ro/linux/remove-ispconfig-maximum-upload-size-of-2m-for-wordpress/

इसे यहां भी संबोधित किया गया है: PHPMyAdmin में फ़ाइल आकार सीमा आयात करें

संपादित करें: अपने आप को मेरे नोट का पूरा पाठ:

अधिकतम अपलोड आकार बदलने के लिए, upload_max_filesize और [यदि आवश्यक हो?] /Etc/php/7.0/apache2/php.ini (या पुराने संस्करणों में: /cc/php5/apache2/php.ini) पर post_max_size संपादित करें।

/etc/init.d/apache2 पुनरारंभ करें

संपादित करें: चूंकि आप बड़ी फ़ाइलों का आयात कर रहे हैं, इसलिए आपको उन्हें संसाधित करने के लिए समय-समय पर बदलाव करना पड़ सकता है। मेरे मामले में, "config.default.php" नाम की फ़ाइल /usr/share/phpmyadmin/libraries/config.default.phpको उस चर के साथ मिला, जिसे $cfg['ExecTimeLimit'] = 300; मैंने एक बड़े आयात के लिए 900 में बदल दिया था, उदाहरण के लिए। बाद में आपको अपाचे को पुनरारंभ करने की आवश्यकता है


3

उन समाधानों के गैर मेरे लिए काम करते हैं !! (पहले से ही डिफ़ॉल्ट रूप से 32M पर सेट है)। समस्या ज्यादातर मामलों में हैmax_allowed_packet

मैं लोकलहोस्ट पर काम कर रहा हूं और इस्तेमाल कर रहा हूं MAMP

यहाँ समाधान है;

1. यदि आपके पास नहीं है my.ini

जोड़ना

--max_allowed_packet=168435456

सेवा

...\MAMP\bin\startMysql.sh

2. अगर आपके पास my.ini है

के अंतर्गत

[mysqld]

जोड़ना

max_allowed_packet=100M

किया हुआ!


Php.ini और .user.ini दोनों में max_allowed_packet = 128M जोड़ा गया और यही मेरे लिए था!
मोलासर

2

तीन चीजें आपको जांचनी होंगी।

upload_max_filesize, memory_limitऔर post_max_sizephp.ini कॉन्फ़िगरेशन फ़ाइल में बिल्कुल।

ये सभी तीन सेटिंग्स उन डेटा के अधिकतम आकार को सीमित करती हैं जिन्हें PHP द्वारा प्रस्तुत और संभाला जा सकता है।

आमतौर पर post_max_sizeऔर memory_limitसे बड़ा होने की जरूरत है upload_max_filesize


तो कुल तीन चर आपको निश्चित रूप से जांचने के लिए चाहिए।


2

इसके साथ WAMPयह सब बहुत आसान है

WAMP चिह्न> PHP> PHP सेटिंग्स> upload_max_filesize = nM> n = (2M, 4M, 8M, 16M, 32M, 64M, 128M, 256M, 512M, या चुनें (कस्टम))।

सेवा (ओं) को स्वचालित रूप से पुनः लोड करें।

लेकिन, यदि आपके पास वास्तव में सर्वर तक कोई पहुंच नहीं है , तो आप एक chunkingएपीआई लेखन का पता लगाना चाहते हैं ।


0

मेरे पास भी यह समस्या थी, और मैंने इस सेटिंग को इसमें सेट करके ठीक किया /etc/nginx/nginx.conf

client_max_body_size 0;

0, असीमित के रूप में।

और यह भी, अगर आपके पास नगीनक्स के साथ चलने वाला एक रिवर्स प्रॉक्सी है, तो उस सर्वर में भी यह सेटिंग होनी चाहिए (यह वही है जो मुझे यहां से फेंक दिया गया है)


0

यदि आपने सही php.ini फ़ाइल संपादित की है, तो Apache या Nginx को पुनरारंभ किया है और फिर भी काम नहीं करता है, तो आपको php-fpm को भी पुनः आरंभ करना होगा :

sudo service php-fpm restart 

0

जैसा कि विश्व स्तर पर कुछ हद तक जोखिम भरा है, मैं एक स्क्रिप्ट के लिए अधिकतम अपलोड मूल्य बढ़ाने की कोशिश कर रहा था big_file_upload.php। किसी कारण से ini_setमदद नहीं की। कुछ खोज के बाद मैं इसे लेकर आया हूँ। इसे अंदर डालें .htaccess(जब तक कि नाम परिवर्तित न हो AccessFileName)

<If "%{REQUEST_URI} == '/subfolder/big_file_upload.php'" >
php_value upload_max_filesize 200M
php_value post_max_size 200M
</If>
<Else>
php_value upload_max_filesize 1M
php_value post_max_size 1M
</Else>

मेरे लिए काम किया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.