Распространённые подводные камни
   
    Элементу MAX_FILE_SIZE нельзя указывать размер файла,
    который превышает предел, который установили в директиве
    upload_max_filesize файла php.ini.
    Ограничение по умолчанию составляет 2 мегабайта.
   
   
    Если установили ограничения памяти, может потребоваться
    увеличение значения опции memory_limit.
    Убедитесь, что значение директивы memory_limit
    достаточно.
   
   
    Время, которое потребуется для работы скрипта, может превысить
    значение опции max_execution_time,
    если для директивы установили маленькое значение.
    Убедитесь, что значение директивы max_execution_time достаточно.
   
   Замечание: 
    
     Директива max_execution_time
     влияет только на время выполнения самого скрипта.
     Время, которое заняли действия за пределами скрипта, — системные вызовы
     функций system() или sleep(), запросы
     к базе данных, время, которое заняла загрузка файла на сервер, и т. д. —
     не учитывается при определении максимального времени работы скрипта.
    
   
   Внимание
    
     Директива max_input_time устанавливает
     максимальное время в секундах, в течение которого скрипту разрешается получать входные данные;
     время загрузки файла тоже включается. Загрузка больших файлов, набора файлов
     или обработка запросов пользователей с медленными соединениями может превысить значение по умолчанию
     в 60 секунд.
    
    
   
    Сервер не загрузит большие файлы, если
    для директивы post_max_size
    установили слишком маленькое значение.
    Проверьте, что значение директивы post_max_size достаточно.
   
   
    Опция
    max_file_uploads
    контролирует максимальное количество файлов, которые загружают на сервер в течение
    одного запроса. Суперглобальный массив $_FILES
    прекратит обработку файлов, как только достигнет ограничения,
    если загружается больше файлов, чем в ограничении.
    Например, если значение директивы
    max_file_uploads равняется
    10, массив $_FILES не будет
    содержать больше 10 элементов.
   
   
    Без проверки того, с каким файлом ведётся работа, пользователи смогут
    получить доступ к конфиденциальной информации других каталогов.
   
   
    Из-за многообразия стилей, в которых файловые системы ведут список каталогов,
    PHP не гарантирует правильную обработку файлов с экзотическими именами,
    например файлов с пробелами в именах.
   
   
    Разработчикам нельзя смешивать обычные input-поля и поля загрузки файлов
    в одной и той же переменной формы (например, нельзя указывать в имени input-элемента
    значение foo[]).