使用表单数据上传图像会产生不必要的响应[关闭]

问题描述 投票:1回答:1

当我上传成功上传ajax图像的图像时,我有一个关于ajax表单数据上传的问题,但由于我无法在我的代码中写回信,因为我无法在我的身边收到问题。

如果有人可以帮助解决这个问题。

我的Ajax代码。

$("form[name='messageFrom']").submit(function(e) {
    var formData = new FormData($(this)[0]);
    $.ajax({
        url: "controller.php",
        type: "POST",
        data: formData,
        async: false,
        success: function (msg) {

            $('#chatBord').append(msg);
            $('#message').val('');
            $('#imageMessage').val('');
        },
        cache: false,
        contentType: false, 
        processData: false
    });
    e.preventDefault();
});

我从ajax收到的回复

JFIF > CREATOR:gd-jpeg v1.0(使用IJG JPEG v62),默认质量 C$。 “,#(7),01444'9 = 82 <.342 C2!!22222222222222222222222222222222222222222222222222 @ ”

我的PHP代码

$message=$_REQUEST['message'];
$group_id=$_REQUEST['sendMessageGroupID'];
$imageName=""; $msg_type="";

if(!empty($_FILES['imageMessage']['name'])){
    $extension=pathinfo($_FILES['imageMessage']['name'],PATHINFO_EXTENSION);
    $imageName=md5(time().rand(100,999)).".".$extension;
    image_resize($_FILES['imageMessage']['tmp_name']);
    move_uploaded_file($_FILES['imageMessage']['tmp_name'],"../API/message/".$imageName);
    $message = BASEPATH.'message/'.$imageName;
    $msg_type="2";
}
else {
    $msg_type="1";
}
addMsgInGroup($group_id,$_SESSION['user_id'],$msg_type,$message); ?>

在addMsgInGroup中只有一个插入查询。

php jquery ajax form-data
1个回答
0
投票

你应该通过在上传图像时发送序列化数据来尝试这个你应该怎么做,

$("form[name='messageFrom']").submit(function(e) {
    $.ajax({
        url: "controller.php",
        type: "POST",
        data: $("form[name='messageFrom']").serialize(),
        async: true,
        success: function (msg) {

            $('#chatBord').append(msg);
            $('#message').val('');
            $('#imageMessage').val('');
        },
        cache: false,
        contentType: false, 
        processData: false
    });
    e.preventDefault();
});

我在您的代码中进行了两处更改

data: $("form[name='messageFrom']").serialize(),
async: true,

在你的ajax代码中,我通过序列化发送代码并使其成为异步:true

在controller.php的PHP端使用$_POST接收它

试试这个,让我知道这是否适合你:)

© www.soinside.com 2019 - 2024. All rights reserved.