Массив $_FILES в PHP пуст
Я пытаюсь загрузить файл через скрипт PHP, но мой массив $_FILES всегда пуст? Моя запись данных $_POST для элемента ввода HTML файла имеет имя файла... Просто в моей локальной системе файл не создается.
Я проверил права на запись во временную папку и установил ее. Я проверил phpinfo(), чтобы убедиться, что загрузка файлов включена, и они есть.
Что может помешать этому? Будет ли mod_rewrite вызывать что-нибудь?
Спасибо!
3 ответа
Когда у вас есть правильный энтип (<form method="post" enctype="multipart/form-data">
), затем проверьте переменную errno в $_FILES, возможны различные причины сбоя. Типичным является превышение MAX_FILE_SIZE.
http://php.net/manual/en/features.file-upload.errors.php
Начиная с PHP 4.2.0, PHP возвращает соответствующий код ошибки вместе с массивом файлов. Код ошибки можно найти в сегменте ошибок массива файлов, который создается во время загрузки файла PHP. Другими словами, ошибка может быть найдена в $ _FILES ['userfile'] ['error'].
UPLOAD_ERR_OK Значение: 0; Нет ошибки, файл успешно загружен.
UPLOAD_ERR_INI_SIZE Значение: 1; Загруженный файл превышает директиву upload_max_filesize в php.ini.
UPLOAD_ERR_FORM_SIZE Значение: 2; Загруженный файл превышает директиву MAX_FILE_SIZE, указанную в форме HTML.
и т.п.
Вы определяете энктип в своей форме?
<form method="post" enctype="multipart/form-data">
Файл не будет загружен, если вы его не установите.