Заливка больших файлов на сайт

Материал из Документация NGCMS

Перейти к: навигация, поиск

Довольно часто на сайте задают вопрос - "Как залить через WEB интерфейс файл размером XXX Mb? При попытках это сделать возникают какие-то ошибки." Если вы столкнулись с аналогичной проблемой, то данная статья именно для вас.

Для решения этого вопроса Вам не помешает знать логику наложения ограничений при заливке больших объёмов данных при использовании PHP вообще и NGcms в частности. Последовательность такая:

  1. [на уровне PHP]: Проверка переменной POST_MAX_SIZE - она определяет максимальный объём данных, которые разрешено передавать через метод POST. Любая информация, превышающая 200-500 байт, передаваемая от клиента на сервер, передаётся при использвании метода POST протокола HTTP.
    Причём файлы вне зависимости от их размера передаются только через этот метод.
  2. [на уровне PHP]: Проверка переменной UPLOAD_MAX_FILESIZE - определяет максимальный объём файла, который разрешено загружать.
  3. [на уровне NGcms]: Проверка максимального объёма файла/изображения, ограничение прописывается в разделе "настройки" => "настройки системы" => "изображения"/"файлы".


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


Вот так можно увеличить на уровне PHP ограничение на размер закачиваемого файла до 10Mb (строки пропсиываются в .htaccess файле в корне сайта):

php_flag post_max_size 30m
php_flag upload_max_filesize 30m