Массив $ _FILES в PHP пуст - PullRequest
2 голосов
/ 26 октября 2009

Я пытаюсь загрузить файл через скрипт PHP, но мой массив $ _FILES всегда пуст? Моя запись данных $ _POST для элемента ввода HTML файла имеет имя файла ... Просто в моей локальной системе файл не создается.

Я подтвердил доступ на запись во временную папку и установил ее в Explicity. Я проверил phpinfo (), чтобы убедиться, что загрузка файлов включена, и они есть.

Что могло бы помешать этому? Будет ли mod_rewrite вызывать что-либо?

Спасибо!

Ответы [ 3 ]

14 голосов
/ 26 октября 2009

Если у вас есть правильный enctype (<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'] [ 'ошибка'].

UPLOAD_ERR_OK Значение: 0; Здесь нет ошибка, файл успешно загружен.

UPLOAD_ERR_INI_SIZE Значение: 1; загруженный файл превышает директива upload_max_filesize в php.ini.

UPLOAD_ERR_FORM_SIZE Значение: 2; загруженный файл превышает Директива MAX_FILE_SIZE, которая была указано в форме HTML.

и т.д.

12 голосов
/ 26 октября 2009

Определяете ли вы энктип в вашей форме?

<form method="post" enctype="multipart/form-data">

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

3 голосов
/ 26 октября 2009

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

enctype="multipart/form-data"
...