2009-10-26 4 views
2

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

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

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

Спасибо!

ответ

14

Когда у вас есть соответствующие 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'] ['error'].

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

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

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

т.д.

+0

print_r ($ _ FILES) приводит к массиву() ... К сожалению, эти данные недоступны. Однако у меня есть enctype = "multipart/form-data" в моей форме. –

+0

У меня был более близкий взгляд - как ни странно, на экране с более низким разрешением, чтобы сделать его еще более смешным - и в моем коде была опечатка. Это еще более иронично, учитывая некоторые из первых решений, которые я нашел, глядя на это, сказав: «Следите за опечатками». Итак ... Проще говоря ... Там так много, чтобы выстраиваться в очередь, следите за опечатками! Спасибо за все пинки в штанах все :) –

12

Вы определяете enctype в своей форме?

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

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

+0

Да, я отвечаю на очень старую тему, но это была моя точной ошибка и решением. –

3

Имеет ли форма право enctype?

enctype="multipart/form-data"