2009-08-28 1 views
5

При попытке получить доступ к $_FILES массив, PHP возвращает ошибку

"Undefined индекс: картины".

В моей php.ini файле File Uploads включены, и любой пользователь может написать в каталоге /tmp. В HTML-форме enctype устанавливается на "multipart/form-data". Интересно, что базовое имя загруженного файла печатается, поэтому я считаю, что PHP действительно видел этот файл, но имеет некоторые проблемы с его загрузкой. Может ли кто-нибудь дать предложения по потенциальным решениям этой проблемы? Кстати, я использую PHP5.

Отрывки из PHP File

echo "Picture=" . $_POST['picture'] . "<br/>"; 
$uploadedPic = $_FILES['picture']['tmp_name']; 

HTML Form

<form action="PHPFile.php" method="post" enctype="multipart/form-data"> 

<p> Picture </p> 
<input type = "file" id="picture" name="picture"/> 

</form> 
+2

Вы пробовали var_dumping свои $ _FILES? – n1313

+1

Вы случайно используете Javascript для сериализации вашей формы? – JorenB

+3

- post_max_size и upload_max_filesize в вашем php.ini установлено достаточно большое значение? – Zed

ответ

6

На какой линии вы получите это предупреждение? Если это один с $_POST['picture'], то его логично, вы не найдете загруженные данные файла в $_POST, он находится в $_FILES

+1

На боковой панели .... вы хотите проверить, есть ли $ _SERVER ['REQUEST_METHOD'] == 'POST', если вы просто загружаете файл в свою форму и не отправляете какие-либо другие данные – SeanJA

1
echo "Picture=" . $_POST['picture'] . "<br/>"; 

POST-переменная

$_POST['picture'] 

не существует, так что да, он даст неопределенную ошибку.

0

Я не могу комментировать, поэтому я скажу это здесь.

MAN, этот эхо будет печатать имя файла! Оно работает! Он сказал, что это работает.

Интересно, что базовое для выгружаемых отпечатков файлов поэтому я считаю, что PHP на самом деле видел файл [...]

Хорошая подсказка: попробуйте var_dump$_FILES и добавить здесь это содержание. У вас может быть ошибка, потому что файл слишком большой или какая-то другая полезная информация.

0

Какой уровень или сообщение об ошибке вы используете? error_reporting(E_ALL) включит полную отчетность и может дать вам подсказку. Как описано выше, сделайте печать $_FILES с var_dump() или print_r(), чтобы просмотреть информацию для вашего файла.

-2

попробуйте добавить

<input type="hidden" name="MAX_FILE_SIZE" value="30000" /> 

перед тем

<input type = "file" id="picture" name="picture"/> 
0

лол, предыдущий плакат сказал, что возобновление их сервер зафиксировал его. я сделал то же самое, и по какой-то причине он работает. я не делал никаких изменений кода, и сброс IIS тоже не работал. он потребовал перезагрузки компьютера. это примерно 2 часа полностью потеряно.

 Смежные вопросы

  • Нет связанных вопросов^_^