0

私はこのフォームを持っています:

<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";
  }

以前に同じコードが機能していたので、これがどこでうまくいかないのかわかりません。

ただし、次のエラーが発生します...

配列([event_image] =>配列([name] => my_image.jpg [type] => image / jpeg [tmp_name] => / private / var / tmp / phpvIYmAZ [error] => 0 [size] => 48512 )))

警告:move_uploaded_file(../../../ images / events / my_image.jpg):ストリームを開くことができませんでした:25行目の/path/event_upload.phpでアクセスが拒否されました

警告:move_uploaded_file():25行目の/path/event_upload.phpの「/private/var/tmp/phpvIYmAZ」を「../../../ images / events/my_image.jpg」に移動できません。 :upload / my_image.jpg

注意:未定義のインデックス:57行目の/path/event_upload.phpのevent_image

4

3 に答える 3

1

$_FILES配列は、複数のアップロードを処理するために、各プロパティキーの下に数値でインデックス付けされます。

$_FILES["event_image"]["type"][0]を使用して、インデックスゼロをハードコーディングする必要があります。数値インデックスなしで$_FILES["event_image"]["name"][0]使用しているすべての行を変更する必要があります。$_FILES

注意:配列内の数値インデックスの適切な位置を修正するために編集された元の回答。

于 2012-02-17T14:03:10.160 に答える
1

OK...ローカルマシンのフォルダ権限の問題であるように見えます...フォルダをchmodする必要がありました。

しかし、すべてのアドバイスをありがとう。

于 2012-02-24T14:30:44.713 に答える
0

$ _FILESオブジェクトがどのように見えるかを知っているので、行番号8の直前にこれを挿入しますecho "<PRE>" . print_r ($_FILES, true) . "</PRE>";

于 2012-02-17T14:03:19.457 に答える