Изменить максимальный размер загружаемого файла

у меня есть веб-сайт, размещенный на ПК, к которому у меня нет доступа. У меня есть форма загрузки, позволяющая людям загружать mp3-файлы размером до 30 МБ. Мой серверный скрипт выполнен на PHP.

каждый раз, когда я пытаюсь загрузить файл, я получаю сообщение об ошибке, утверждая, что файл превышает максимально допустимый размер, поэтому мне нужно увеличить размер. Мои исследования в интернете предложили изменить .htaccess файл, к которому у меня нет доступа, так что это не сработает. Другие предложили добавить обычай php.ini файл в мой корень, который не работал. Есть другие предложения?

14 ответов


вам нужно установить значение upload_max_filesize и post_max_size в вашем php.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.Ини, тебе не повезло. Вы не можете изменить эти значения во время выполнения; загрузка файла больше, чем значение, указанное в php.Ини не на время выполнения достигает ваш вызов ini_set.

посмотреть описание основной php.ini директивы.


вы можете изменить его с помощью .

.htaccess файлы хранятся в том же каталоге, что и ваш .php файлы. Они изменяют конфигурацию для этой папки и всех подпапок. Вы просто используете их, создавая .htaccess файл в каталоге по вашему выбору (или измените его, если он присутствует).

следующее должно позволить вам увеличить лимит загрузки (если поставщик сервера разрешает изменения конфигурации PHP через .htaccess).

php_value upload_max_filesize 40M
php_value post_max_size 42M

У меня была такая же проблема и я создал .пользователь.ini-файл и поместите его в каталог, в котором находился скрипт загрузки. Чем внутри этого файла я устанавливаю эти два значения:

  upload_max_filesize = 40M

  post_max_size = 40M

и это отлично сработало для меня!


вы также можете использовать функции безопасность (только для версии PHP ниже 5.3):

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

Как сказал @acme, в php 5.3 и выше эти настройки являются директивами PHP_INI_PERDIR, поэтому их нельзя установить с помощью ini_set. Вы можете использовать user.вместо этого ini.


чтобы найти 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-file-for-wordpress


у меня такая же проблема в прошлом .. и я исправил это через

когда вы вносите изменения в конфигурацию php через .htaccess вы должны поместить конфигурации в IfModule - тег, другие, что Внутренняя ошибка сервера возникнет.

Это пример, он отлично работает для меня:

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

и это PHP referance, если вы хотите понять больше. http://php.net/manual/en/configuration.changes.php


я решил эту проблему, создав файл с именем .user.ini в каталоге, где находятся скрипты PHP-файлов (это означает, что любой PHP-скрипт в этом каталоге получает новое ограничение размера файла)

содержание .user.ini было:

upload_max_filesize = 40M
post_max_size = 40M

Ну, я хотел бы добавить мои 2 цента.

я использую общий веб-хостинг, и я много раз решал эту проблему, пытался решить ее самостоятельно, но безрезультатно. Наконец, мне удалось решить эту проблему, проверив различные веб-источники и связавшись с поставщиком услуг хостинга. Мои вопросы были "как я могу изменить значение php memory_limit в общий веб-хостинг?", "Как я могу изменить значение php upload_max_filesize в общий веб-хостинг?", "Как я могу изменить значение php max_input_vars в общий веб-хостинг?", "Как я могу изменить значение php max_execution_time в общий веб-хостинг?", "Как я могу изменить значение php max_input_time В общем веб-хостинге?"и многое другое путем настройки или изменения php.ini или . Я пытался изменить их, но возникли проблемы. Наконец я связался со своим хостинг-провайдером, и оказалось, что я установил свой php на родной, они изменили его на php 5.6, вот их ответ:

"ваш 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

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

пока все работает нормально, если кто-то из вас преодолеет некоторые проблемы, пожалуйста, напишите здесь и предупредите меня, чтобы я мог изменить вышеуказанные коды. Кстати, я также загружаю некоторые фотографии, которые показывают изменения.

еще одна вещь, которую я почти забыл упомянуть об установке ZipArchive на вашем общем веб-хостинге, мне удалось выполнить это требование, просто перейдя в настройки php через мою cpanel, нажмите на расширения селектора php, а затем отметьте раздел zip, вот и все.

спасибо.

PS: Я открыт для хорошей практики, и если вы видите какую-либо плохую практику здесь, Пожалуйста, дайте мне знать, я постараюсь изменить их. Спасибо.


У меня была та же проблема. Я пробовал три способа, которые обычно предлагались:--1-->

  1. функции.в PHP
  2. php.ini
  3. .реврайт

нет, если это решило мою проблему. Я использую godaddy и наткнулся на предлагаемое решение, которое было:

  1. надо Хостинг, потом управление
  2. под программа выберите выберите PHP версия
  3. выберите переключиться на PHP Options найдено в правом верхнем углу таблицы в цвете шрифта: синий
  4. в нижней части большей части у вас, вероятно, будет upload_max_filesize = 2M
  5. Теперь, не стесняйтесь, чтобы изменить его
  6. обязательно нажмите кнопку сохранить!
  7. Теперь перейдите в панель wp-admin, выберите СМИ затем добавить

вуаля! Теперь у вас другой максимальный размер файла загрузки:)


возможно, это должен быть комментарий к @seanb123 и @Fredrick Gauss комментируя его комментарий, но для меня в Drupal 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, но концепция та же.

может быть, это поможет какому-нибудь беспомощному придурку вроде меня.

это, как говорится, ответ на OP в моем случае будет заключаться в том, что кто-то с правами администратора на коробке должен будет это сделать.

сайт, который помог мне: http://www.evilbox.ro/linux/remove-ispconfig-maximum-upload-size-of-2m-for-wordpress/

Это также адресовано здесь:импорт ограничение размера файла в PHPMyAdmin

изменить: полный текст моей записки самому себе:--6-->

чтобы изменить максимальный размер загрузки, отредактируйте upload_max_filesize и - "если понадобится?] установка post_max_size в файле /etc/php в/7.0/apache2 не/РНР.ini (или in более старые версии: / etc/php5/apache2 / php.ini)

/ etc / init.д/apache2 перезагрузка

ИЗМЕНИТЬ ЕЩЕ РАЗ: поскольку вы импортируете большие файлы, вам может потребоваться изменить время ожидания для их обработки. В моем случае файл с именем " config.по умолчанию.php " был найден в /usr/share/phpmyadmin/libraries/config.default.php переменная $cfg['ExecTimeLimit'] = 300; Например, я изменил свой на 900 для огромного импорта. После этого вам нужно перезапустить apache


Non из этих решений работают для меня!! (по умолчанию уже установлено значение 32M).Проблема в большинстве случаев max_allowed_packet

Я работаю над localhost и использую MAMP.

вот решений;

1. Если у вас нет my.ini

добавить

--max_allowed_packet=168435456

до

...\MAMP\bin\startMysql.sh

2. Если у вас есть мой.ini

под

[mysqld]

добавить

max_allowed_packet=100M

готово!


много раз я замечал, что сайт с общим хостингом не позволяет изменять настройки в php.ini-файл. один также не может даже ящик .файл htaaccess вообще. в такой ситуации можно попробовать следующие вещи

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

три вещи, которые нужно проверить.

upload_max_filesize, memory_limit и post_max_size в php.файл конфигурации ini точно.

все эти три параметра ограничивают максимальный размер данных, которые могут быть отправлены и обработаны PHP.

обычно post_max_size и memory_limit должно быть больше upload_max_filesize.


Итак, три переменные в общей сумме вы должны проверить, чтобы быть абсолютно уверенным.


ответы немного неполные, 3 вещи, которые вы должны сделать

в php.ini вашей установки php (примечание: в зависимости от того, хотите ли вы его для CLI, apache или nginx, найдите правильный php.ini, чтобы манипулировать. Для nginx он обычно находится в /etc/php/7.1/fpm где 7.1 зависит от вашей версии. Для apache обычно /etc/php/7.1/apache2)

post_max_size=500M

upload_max_filesize=500M

memory_limit=900M

или установить другие значения. Перезагрузите / перезагрузите apache, если у вас установлен apache или php-fpm для nginx, если вы используете nginx.