Изменение upload_max_filesize на PHP - PullRequest
76 голосов
/ 14 июля 2009

Я использую 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.

Ответы [ 9 ]

68 голосов
/ 14 июля 2009

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

php_value upload_max_filesize 10M
php_value post_max_size 10M
60 голосов
/ 14 июля 2009

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

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

37 голосов
/ 14 марта 2015

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

Я сделал INI-файл со значениями в нем. Все просто:

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

upload_max_filesize = 150M
post_max_size = 150M

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

8 голосов
/ 13 января 2015

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

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

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

4 голосов
/ 14 июля 2009

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

php_value upload_max_filesize 10M
0 голосов
/ 18 мая 2015

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

0 голосов
/ 07 июня 2013

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

<?php ini_set('upload_max_filesize', '200M'); ?>
0 голосов
/ 20 апреля 2013

Если вы работаете на локальном сервере, таком как wamp или xampp, убедитесь, что он использует php.ini, как вы думаете. На этих серверах обычно используется php.ini, которого нет в папке html docs.

0 голосов
/ 31 мая 2012

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

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

...