При попытке доступа к массиву $_FILES
PHP возвращает ошибку
«Неопределенный индекс: изображение».
В моем файле php.ini
файлы, и любой пользователь может писать в каталоге /tmp
. В HTML-форме enctype устанавливается как "multipart/form-data"
. Интересно, что базовое имя загруженного файла печатается, поэтому я считаю, что PHP действительно видел этот файл, но имеет некоторые проблемы с его загрузкой. Может ли кто-нибудь дать предложения по потенциальным решениям этой проблемы? Кстати, я использую PHP5.
Фрагменты из файла PHP
echo "Picture=" . $_POST['picture'] . "<br/>"; $uploadedPic = $_FILES['picture']['tmp_name'];
Форма HTML
<form action="PHPFile.php" method="post" enctype="multipart/form-data"> <p> Picture </p> <input type = "file" id="picture" name="picture"/> </form>
На какой строке вы получаете это предупреждение? Если это тот, у кого есть $_POST['picture']
, то его логический, вы не найдете загруженные данные файла в $_POST
, он находится в $_FILES
echo "Picture=" . $_POST['picture'] . "<br/>";
Переменная POST
$_POST['picture']
не существует, так что да, это даст неопределенную ошибку.
lol, предыдущий плакат сказал, что перезапуск их сервера исправил его. я сделал то же самое, и по какой-то причине он работает. я не делал никаких изменений кода, и сброс IIS тоже не работал. он потребовал перезагрузки компьютера. это примерно 2 часа полностью потеряно.
Какой уровень или отчет об ошибках вы используете? error_reporting(E_ALL)
включит полную отчетность и может дать вам подсказку. Как описано выше, выполните печать $_FILES
с помощью var_dump()
или print_r()
чтобы просмотреть информацию для вашего файла.
Я не могу комментировать, поэтому я скажу это здесь.
MAN, это эхо будет печатать имя файла! Оно работает! Он сказал, что это работает.
Интересно, что базовое имя загруженного файла печатается, поэтому я считаю, что PHP действительно видел файл […]
Хороший намек: попробуйте var_dump
$_FILES
и добавьте здесь его содержимое. У вас может быть ошибка, потому что файл слишком большой или какая-то другая полезная информация.
попробуйте добавить
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
до
<input type = "file" id="picture" name="picture"/>