Если вы столкнулись с тем, что при загрузке файла большого размера через PHP у вас не получается его загрузить и форма сбрасывает отправку, то это говорит о том, что настройки сервера, где расположен сайт, позволяют загружать файлы только до установленного размера. Но это не беда, ведь данный лимит можно увеличить.
Лимит на загрузку может быть установлен в нескольких местах с помощью специальных директив.
Директивы upload_max_filesize и post_max_size
Директива upload_max_filesize определяет максимальный размер загружаемых файлов на сервер.
Директива post_max_size определяет максимальный размер POST запросов при отправке файлов с форм. Его значение должно быть больше или равно максимальному размеру загружаемых файлов.
Конфигурационный файл php.ini
Если у вас есть доступ к файлу php.ini на сервере где расположен сайт, то можно изменить значения upload_max_filesize и post_max_size
PHP функция ini_set()
Ограничение на уровне сайта или веб-приложения обычно дается в файлах php путем изменения директив upload_max_filesize и post_max_size через функцию ini_set():
ini_set('upload_max_size','30M');
ini_set('post_max_size','30M');
Файл .htaccess
Если вы используете веб-сервер Apache, то можете через файл .htaccess увеличить значения upload_max_filesize и post_max_size:
php_value upload_max_filesize 30M
php_value post_max_size 30M
Ngnix client_max_body_size
В веб-сервере Ngnix есть также директива client_max_body_size, которая отвечает за максимальный размер данных передаваемых в HTTP запросах и влияет на максимальный размер загружаемых файлов. При загрузке файла большого размера сервер может выдать ошибку: 413 Request Entity Too Large, которая будет означать, что клиент отправил слишком большой запрос на сервер и пора повышать лимит.
server {
...
client_max_body_size 40m;
...
}
Добавил через htaccess все работает
Отлично, сделал все по статье. Теперь ошибок нет :)
Спасибо, полезная статья. Удалось настроить у себя и это помогло больше файлов загружать.
Ciao a tutti vengo dall'italia