繁体   English   中英

jQuery和AJAX发布到php数据属性?

[英]Jquery and AJAX post to php data attribute?

您好,我有以下AJAX代码:

 var formData = new FormData($('form')[0]);
$.ajax({
    url: 'saveImage.php',  //Server script to process data
    type: 'POST',
    data: formData,
    processData: false,
    success: function(data){
        console.log(data);            
    }

});

它的工作原理很棒,并且可以像背景一样在后台加载PHP页面:

    <?php
        include_once "mysql_connect.php";
        $imageName = mysql_real_escape_string($_FILES["Image1"]["name"]);
        $imageData = '';
        $imageext = '';
        if($imageName != null){
            $imageData = mysql_real_escape_string(file_get_contents($_FILES["Image1"]["tmp_name"]));
            $imageType = mysql_real_escape_string($_FILES["Image1"]["type"]);
            $imageSize = getimagesize($_FILES["Image1"]["tmp_name"]);
            $imageType = mysql_real_escape_string($_FILES["Image1"]["type"]);
            $FileSize = FileSize($_FILES["Image1"]["tmp_name"]);
            $imageext = mysql_real_escape_string($imageSize['mime']);
        }
        $query=mysql_query("INSERT INTO pictures (`id`, `imagedata`, `imageext`) VALUES ('', '$imageData', '$imageext');"); 


        echo $imageext;


?>

唯一的问题是PHP页面无法找到变量Image1,该变量是表单中输入的名称。 我做错了什么吗? 我在想,也许在Ajax的data参数中可能是这样,但是正确的:

data: "Image1"=formData,

那是一件事,如果不是,为什么我的PHP看不到该输入字段?

您忘记了Ajax函数中的cache和contentType属性。 尝试它应该工作:

var formData = new FormData($('form')[0]);
$.ajax({
   type: "POST",                
   url: "saveImage.php",
   processData: false,
   contentType: false,
   cache:false,
   data: formData,
   success: function(data){
        console.log(data);
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM