Найбільш поширені помилки
Опция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[]