Javascript 我的图像上载脚本出现序列化表单问题

Javascript 我的图像上载脚本出现序列化表单问题,javascript,jquery,ajax,forms,Javascript,Jquery,Ajax,Forms,我使用以下PHP脚本(几乎是从W3Schools粘贴的副本)来存储POST表单传递的图像: <?php $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["imageUpload"]["name"]); $extension = end($temp); if ((($_FILES["imageUpload"]["type"] == "image/gif") || ($_FILES

我使用以下PHP脚本(几乎是从W3Schools粘贴的副本)来存储POST表单传递的图像:

<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["imageUpload"]["name"]);
$extension = end($temp);

if ((($_FILES["imageUpload"]["type"] == "image/gif")
|| ($_FILES["imageUpload"]["type"] == "image/jpeg")
|| ($_FILES["imageUpload"]["type"] == "image/jpg")
|| ($_FILES["imageUpload"]["type"] == "image/pjpeg")
|| ($_FILES["imageUpload"]["type"] == "image/x-png")
|| ($_FILES["imageUpload"]["type"] == "image/png"))
&& ($_FILES["imageUpload"]["size"] < 500000)
&& in_array($extension, $allowedExts)) {
  if ($_FILES["imageUpload"]["error"] > 0) {
    echo "Error: try again";
  } else {
    if (file_exists("upload/" . $_FILES["imageUpload"]["name"])) {
      echo "Error: a file with that name already exists";
    } else {
      move_uploaded_file($_FILES["imageUpload"]["tmp_name"],
      "upload/" . $_FILES["imageUpload"]["name"]);
      echo "upload/" . $_FILES["imageUpload"]["name"];
    }
  }
} else {
  echo "Error: make sure file is less than 500kb and is a gif/jpg/png";
}
?>
以下是表单的HTML(如果有帮助):

<div id="uploadImageDialog" title="Upload Image">
        Select the image you wish to upload.
        <form method="post" action="imageUpload.php" enctype="multipart/form-data" name="uploadImageForm" id="uploadImageForm">
            <input type="file" name="imageUpload" id="imageUpload">
            <input type="submit" value="Upload">
        </form>
</div>

选择要上载的图像。

当我手动提交表单时,PHP脚本工作正常。然而,当我用AJAX提交它时,我不断收到“错误:确保文件小于500kb并且是gif/jpg/png”消息。当然,该文件确实有效,但由于某些原因,它无法通过一个或多个if检查。我怀疑是因为表单被序列化了。我知道序列化的作用,但我不知道如何/是否需要在服务器脚本上执行某些操作以接受序列化数据?还是其他地方有问题?

错误:确保文件小于500kb,并且是gif/jpg/png文件“我认为这是个错误obvious@sakir谢谢你的帮助!然而,如果你读了我的帖子,你会发现我马上说这个文件是有效的。通过手动发布表单提交文件不会导致错误。这个问题只出现在AJAX发布中,与文件类型或大小无关
<div id="uploadImageDialog" title="Upload Image">
        Select the image you wish to upload.
        <form method="post" action="imageUpload.php" enctype="multipart/form-data" name="uploadImageForm" id="uploadImageForm">
            <input type="file" name="imageUpload" id="imageUpload">
            <input type="submit" value="Upload">
        </form>
</div>