Изменение upload_max_filesize на PHP

Я использую PHP 5.3.0 и столкнулся с чем-то, что может быть ошибкой (в этом случае я сообщу об этом), или, может быть, я – поэтому я прошу убедиться.

При запуске этого кода:

<?php ini_set('upload_max_filesize', '10M'); echo ini_get('upload_max_filesize'), ", " , ini_get('post_max_size') 

Я получаю:

 2M, 8M 

Это несмотря на то, что мои настройки php.ini выше:

 upload_max_filesize = 10M post_max_size = 10M 

(происходит только один раз)

Поскольку ошибка возникает после установки значения, а также его установки в php.ini, я склонен думать, что это ошибка. Может ли кто-нибудь подтвердить или указать мне, где я ошибаюсь?

Обновление : похоже, перезапуск Apache исправил это – я всегда думал, что его не нужно перезапускать, если вы изменили php.ini.

Вы не можете использовать сокращенную нотацию для установки значений конфигурации вне PHP.ini. Я предполагаю, что он возвращается к 2 МБ в качестве скомпилированного значения по умолчанию при столкновении с плохим значением.

С другой стороны, я не думаю, что upload_max_filesize можно установить с помощью ini_set() . В «официальном» списке указано, что это PHP_INI_PERDIR .

Используете ли вы хостинг-провайдера? Это могут быть главные настройки, переопределяющие все, что вы пытаетесь изменить. Вы пытались добавить их в свой .htaccess?

 php_value upload_max_filesize 10M php_value post_max_size 10M 

Поскольку я просто столкнулся с этой проблемой на общем хосте и не смог добавить значения в мой файл .htaccess, я решил поделиться своим решением.

Я сделал файл ini со значениями в нем. Просто как тот:

Создайте файл с именем «.user.ini» и добавьте свои значения

 upload_max_filesize = 150M post_max_size = 150M 

Бум, проблема решена.

Я получил это, чтобы работать с файлом .user.ini в том же каталоге, что и мой скрипт index.php, который загружает мое приложение. Вот содержание:

 upload_max_filesize = "20M" post_max_size = "25M" 

Это рекомендуемое решение для Heroku.

Это также можно контролировать с помощью конфигурации apache. Проверьте httpd.conf и / или .htaccess на следующее:

 php_value upload_max_filesize 10M 

если вы используете ini_set «на лету», вы найдете здесь http://php.net/manual/en/ini.core.php информацию, которая, например, upload_max_filesize и post_max_size, не может быть изменена «на лету» (PHP_INI_PERDIR).

Изменять эти переменные только изменения конфигурации php.ini, .htaccess или vhost.

Если вы работаете на локальном сервере, таком как wamp или xampp, убедитесь, что он использует php.ini, который вы так думаете. Эти серверы обычно по умолчанию используют php.ini, который не находится в вашей папке dtml docs.

Я столкнулся с одной и той же проблемой, но выяснил, что не все настройки конфигурации могут быть установлены с помощью функции ini_set (), проверьте это, если параметр конфигурации может быть установлен

Вы также можете использовать в файле php, как это

 <?php ini_set('upload_max_filesize', '200M'); ?>