Если вы столкнулись с тем, что при загрузке файла большого размера через 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;
    ...
}