Изменение 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.

Ответ 9

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

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