0

サーバーに画像をアップロードしようとしていますが、コードは非常に単純ですが、if テストに合格することはなく、常に else ステートメントに直接進み、そこでコードを実行します。無効なファイル。以下のフォームコードの場合...

<form action="take.php" method="get" onsubmit='return chequer()' enctype="multipart/form-data">
<input type="file" name="image1"/>
</form>

画像をアップロードするための php スクリプトは次のとおりです。これはもちろん、take.php ファイルにあります。

if ($_GET["image"] == Null)
{
$sql = "INSERT INTO postable (description, dated, posterid, country, state, city, area)
VALUES
('$_GET[Desc]',NOW(),'$row[0]','$_GET[Country]','$_GET[State]','$_GET[City]','$_GET[area]')";
}
else {
$sql = "INSERT INTO postable (description, dated, image, posterid, country, state, city, area)
VALUES
('$_GET[Desc]',NOW(),'$_GET[image]','$row[0]','$_GET[Country]','$_GET[State]','$_GET[City]','$_GET[area]')";
$allowedExts = array("jpg", "jpeg", "gif", "png");
$extension = end(explode(".", $_FILES["image1"]["name"]));
if ((($_FILES["image1"]["type"] == "image/gif")
|| ($_FILES["image1"]["type"] == "image/jpeg")
|| ($_FILES["image1"]["type"] == "image/pjpeg"))
&& ($_FILES["image1"]["size"] < 65536)
&& in_array($extension, $allowedExts))
  {
  if ($_FILES["image1"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["image1"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["image1"]["name"] . "<br />";
    echo "Type: " . $_FILES["image1"]["type"] . "<br />";
    echo "Size: " . ($_FILES["image1"]["size"] / 1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["image1"]["tmp_name"] . "<br />";

    if (file_exists("upload/" . $_FILES["image1"]["name"]))
      {
      echo $_FILES["image1"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["image1"]["tmp_name"],
      "upload/" . $_FILES["image1"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["image1"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }

どんな助けでも大歓迎です。

前もって感謝します...

4

2 に答える 2

3

ファイルをアップロードするには、フォームメソッドは常に POST にする必要があるため、フォームメソッドで GET を POST に変換します

于 2012-08-16T10:57:38.783 に答える
0

アップロードしようとしているファイルの種類を確認してください。

echo $_FILES["image1"]["type"];

アップロードしようとしている画像の種類が異なる場合があるためです。または、別の画像を試すことができます。

于 2012-08-16T11:16:31.837 に答える