Найбільш поширені помилки

Опция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 елементів.

Якщо не перевіряти, з якими файлами ви працюєте, користувачі можуть отримати доступ до конфіденційної інформації, розміщеної в інших директоріях.

Оскільки різні системи по-різному працюють із файловою структурою, немає жодних гарантій того, що файли з екзотичними іменами (наприклад, які містять пробілові символи) будуть оброблені коректно.

Розробники не повинні використовувати однакові імена для звичайних полів уведення (тег input) та полів вибору файлу в межах однієї і тієї ж форми (наприклад, використовуючи ім'я для тега inputнаподобиеfoo[]