Изменение 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.
Ответы
Ответ 1
Вы не можете использовать сокращенную нотацию для установки значений конфигурации вне PHP.ini. Я предполагаю, что он возвращается к 2 МБ в качестве скомпилированного значения по умолчанию при столкновении с плохим значением.
С другой стороны, я не думаю, что upload_max_filesize
можно установить с помощью ini_set()
. "официальный" список утверждает, что это PHP_INI_PERDIR
.
Ответ 2
Используете ли вы хостинг-провайдера? Это могут быть главные настройки, переопределяющие все, что вы пытаетесь изменить. Вы пытались добавить их в свой .htaccess?
php_value upload_max_filesize 10M
php_value post_max_size 10M
Ответ 3
Так как я просто столкнулся с этой проблемой на общем хосте и не смог добавить значения в мой файл .htaccess, я решил поделиться своим решением.
Я сделал файл ini со значениями в нем. Простой:
Сделайте файл с именем ".user.ini" и добавьте свои значения
upload_max_filesize = 150M
post_max_size = 150M
Бум, проблема решена.
Ответ 4
Я получил это для работы с файлом .user.ini в том же каталоге, что и мой index.php script, который загружает мое приложение. Вот содержание:
upload_max_filesize = "20M"
post_max_size = "25M"
Это рекомендуемое решение для Heroku.
Ответ 5
Это также можно контролировать с помощью конфигурации apache. Проверьте httpd.conf и/или .htaccess на следующее:
php_value upload_max_filesize 10M
Ответ 6
если вы используете ini_set "на лету", вы найдете здесь http://php.net/manual/en/ini.core.php информацию, например, upload_max_filesize и post_max_size не изменяются "на лету" (PHP_INI_PERDIR).
Только изменения php.ini,.htaccess или vhost изменяют эти переменные.
Ответ 7
Если вы работаете на локальном сервере, таком как wamp или xampp, убедитесь, что он использует php.ini, который вы так думаете. Эти серверы обычно по умолчанию используют php.ini, которые не находятся в вашей папке dtml docs.
Ответ 8
У меня возникла та же проблема, но я узнал, что не все настройки конфигурации могут быть установлены с помощью функции ini_set(), проверьте это Где конфигурация настройка может быть установлена
Ответ 9
Вы также можете использовать в файле php, например,
<?php ini_set('upload_max_filesize', '200M'); ?>