«Неопределенный индекс» при загрузке изображения с использованием php - PullRequest
0 голосов
/ 17 февраля 2012

У меня есть эта форма:

<form action="image_upload.php" method="post" enctype="multipart/form-data">
   Image 1: <input type="file" name="event_image" />
   <input type="submit" />
</form> 

и этот php-код (image_upload.php):

print_r($_FILES);
if ((($_FILES["event_image"]["type"] == "image/jpeg")
|| ($_FILES["event_image"]["type"] == "image/pjpeg"))
&& ($_FILES["event_image"]["size"] < 200000))
  {
  if ($_FILES["event_image"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["event_image"]["error"] . "<br />";
    }
  else
    {
    if (file_exists("/images/events/" . $_FILES["event_image"]["name"]))
      {
      echo $_FILES["event_image"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["event_image"]["tmp_name"],
      "/images/events/" . $_FILES["event_image"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["event_image"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }

Я понятия не имею, где это идет не так, как у меня былотот же код работает раньше.

Я получаю следующую ошибку, хотя ...

Array ([event_image] => Array ([name] => my_image.jpg [type] => image / jpeg [tmp_name]=> / private / var / tmp / phpvIYmAZ [ошибка] => 0 [размер] => 48512))

Предупреждение: move_uploaded_file (../../../ images / events / my_image.jpg): не удалось открыть поток: в файле /path/event_upload.php в строке 25

отказано в разрешении: предупреждение: move_uploaded_file (): невозможно переместить '/ private / var / tmp / phpvIYmAZ' в '../../../images/events/my_image.jpg 'в /path/event_upload.php в строке 25 Хранится в: upload / my_image.jpg

Примечание: неопределенный индекс: event_image в /path/event_upload.phpпо линии 57

Ответы [ 3 ]

1 голос
/ 24 февраля 2012

ОК ... может показаться, что это проблема с правами доступа к папке на моем локальном компьютере ... Просто пришлось изменить папку.

Спасибо за все советы.

1 голос
/ 17 февраля 2012

Массив $_FILES численно индексируется под каждым ключом свойства, чтобы иметь дело с несколькими загрузками.

Вы должны жестко закодировать индекс ноль, используя $_FILES["event_image"]["type"][0], $_FILES["event_image"]["name"][0] и т. Д. Вы должны изменить каждую строку, где вы используете $_FILES без числовых индексов.

УВЕДОМЛЕНИЕ : исходный ответ отредактирован для исправления правильного расположения числовых индексов в массиве.

0 голосов
/ 17 февраля 2012

Просто чтобы вы знали, как выглядит объект $ _FILES, прямо перед строкой № 8 вставьте echo "<PRE>" . print_r ($_FILES, true) . "</PRE>";

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...