У меня есть веб-сайт, размещенный на компьютере, к которому у меня нет доступа. У меня есть форма загрузки, позволяющая загружать файлы mp3 размером до 30 МБ. Мой серверный скрипт написан на PHP.
Каждый раз, когда я пытаюсь загрузить файл, я получаю сообщение об ошибке, утверждающее, что файл превышает максимально допустимый размер, поэтому мне нужно увеличить размер. В моем исследовании в интернете было предложено изменить .htaccess файл, к которому у меня нет доступа, так что это не сработает. Другие предлагали добавить пользовательский файл php.ini в мой корень, но это не помогло. Какие еще есть предложения?
Ответ 1
Вам нужно установить значение upload_max_filesize и post_max_size в вашем php.ini:
; Максимально допустимый размер загружаемых файлов.
upload_max_filesize = 40M
; Должен быть не более чем upload_max_filesize
post_max_size = 40M
После изменения файла(ов) php.ini вам необходимо перезапустить HTTP-сервер, чтобы использовать новую конфигурацию.
Если вы не можете изменить свой php.ini, вам не повезло. Вы не можете изменить эти значения во время выполнения; загрузка файла, размер которого превышает значение, указанное в php.ini, завершится ошибкой к тому времени, когда выполнение достигнет вызова ini_set.
Ответ 2
Вы можете изменить его через .htaccess файл.
.htaccess файлы хранятся в том же каталоге, что и ваши .php файлы. Они изменяют конфигурацию этой папки и всех подпапок. Вы просто используете их, создавая .htaccess файл в выбранном вами каталоге (или изменяя его, если он есть).
Следующее должно позволить вам увеличить лимит загрузки (если поставщик сервера разрешает изменение конфигурации PHP через .htaccess).
php_value upload_max_filesize 40M
php_value post_max_size 42M
Ответ 3
У меня была такая же проблема, и я создал файл .user.ini и поместил его в каталог, в котором находился сценарий загрузки. Затем внутри этого файла я установил эти два значения:
upload_max_filesize = 40M
post_max_size = 40M
И это отлично сработало!
Ответ 4
Вы также можете использовать функцию ini_set (только для версии PHP ниже 5.3):
ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');
В php 5.3 и выше эти настройки являются директивами PHP_INI_PERDIR, поэтому их нельзя установить с помощью ini_set. Вместо этого вы можете использовать user.ini.
Ответ 5
У меня была такая же проблема в прошлом, и я исправил ее через .htaccess файл.
Когда вы вносите изменения в конфигурацию php, .htaccess, вы должны поместить конфигурации в IfModule тег, иначе возникнет ошибка внутреннего сервера.
Это пример, у меня он отлично работает:
<IfModule mod_php5.c>
php_value upload_max_filesize 40M
php_value post_max_size 40M
</IfModule>
Ответ 6
В 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.
Web