Php 我不断得到一个空白值和一个无效文件

Php 我不断得到一个空白值和一个无效文件,php,javascript,jquery,ajax,file-upload,Php,Javascript,Jquery,Ajax,File Upload,可能重复: 我有一个JSFIDLE,用户可以在文本区域中添加问题,并在下面添加问题。现在,当用户添加问题时,它会将问题添加到下表中,但也会添加包含文件输入的列。用户可以使用此输入选择图像文件 现在我没有在JSFIDLE中包含提交按钮,但是当用户提交表单时,它会将用户带到create_session.php页面,但是我在下面有一个AJAX,它会在后台发布到insertQuestion.php function submitform() { var fieldvalue = $("#Q

可能重复:

我有一个JSFIDLE,用户可以在文本区域中添加问题,并在下面添加问题。现在,当用户添加问题时,它会将问题添加到下表中,但也会添加包含文件输入的列。用户可以使用此输入选择图像文件

现在我没有在JSFIDLE中包含提交按钮,但是当用户提交表单时,它会将用户带到create_session.php页面,但是我在下面有一个AJAX,它会在后台发布到insertQuestion.php

  function submitform()
{
    var fieldvalue = $("#QandA").val();
    $.post("insertQuestion.php", $("#QandA").serialize() ,function(data){
        var QandAO = document.getElementById("QandA");
        QandAO.submit();
    });  
    alert("Your Details for this Session has been submitted"); 
}
现在在insertQuestion.php中,它做了两件事,首先它应该上传文件输入字段中的所有文件,并且应该将表单中的所有值插入数据库

但有两个问题:

问题1:

即使上传了正确的文件类型,它仍会不断回显我有一个“无效文件”。它为什么要这样做?如何修复它,使其不会对有效文件回显“无效文件”

问题2:

在INSERT VALUES代码中,即使从文件输入中选择了文件位置,它也会一直显示“ImageId”的空白值。为什么它不断地显示一个空白值,如何修复

下面是我目前看到的插入值示例:

INSERT INTO Question (QuestionContent, ImageId) VALUES ('What is my Name?',''), ('What is my Age','') 
以下是insertQuestion.php中的完整代码:

<?php

session_start();


 if ((($_FILES["fileImage"]["type"] == "image/gif")
|| ($_FILES["fileImage"]["type"] == "image/jpeg")
|| ($_FILES["fileImage"]["type"] == "image/pjpeg")
|| ($_FILES["fileImage"]["type"] == "image/jpg")
|| ($_FILES["fileImage"]["type"] == "image/png")
|| ($_FILES["fileImage"]["type"] == "image/tif")))
  {
  if ($_FILES["fileImage"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["fileImage"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["fileImage"]["name"] . "<br />";
    echo "Type: " . $_FILES["fileImage"]["type"] . "<br />";
    echo "Size: " . ($_FILES["fileImage"]["size"] / 1024) . " Kb<br />";
    echo "Temp fileImage: " . $_FILES["fileImage"]["tmp_name"] . "<br />";

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


$username="xxx";
$password="xxx";
$database="xxx";

mysql_connect('localhost',$username,$password);

mysql_select_db($database) or die( "Unable to select database");


$i = 0;
    $c = count($_POST['questionText']);

    $insertquestion = array();

    for($i = 0;  $i < $c; $i++ ){

      $imagequery = "SELECT ImageId FROM Image WHERE (ImageFile = '". mysql_real_escape_string($_POST['fileImage'])."')";
        $imagers = mysql_query($imagequery);
        $imagerecord = mysql_fetch_array($imagers);
        $imageid = $imagerecord['ImageId']; 

        $insertquestion[] = "'".  
                        mysql_real_escape_string( $_POST['questionText'][$i] ) ."','".
                        mysql_real_escape_string( $imageid [$i] ) ."'";

    }

     $questionsql = "INSERT INTO Question (SessionId, QuestionId, QuestionContent, QuestionMarks, OptionId, ImageId) 
        VALUES (" . implode('), (', $insertquestion) . ")";

    echo($questionsql);

mysql_close();

?>
问题1: 由于要将[]添加到上载文件名$\u FILES[“fileImage”]是一个文件数组,因此[“type”]只存在于数组的每个元素中,因此if失败

错误报告(E_全部); 有助于防止此类错误

问题2是问题1,但有$u POST