Массив $_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">

Файл не будет загружен, если вы его не установите.

Имеет ли форма правильный тип?

enctype="multipart/form-data"
Другие вопросы по тегам