使用ajax发送图像和文本

时间:2012-12-09 21:49:13

标签: javascript ajax jquery multipartform-data

我正在使用javascript的'formData'来发送带有ajax的图像文件。如何将其他数据附加到formData,例如文本字符串?

JS:

$("#post-image").click(function(){
    $.ajax({
        url: "../../build/ajaxes/upload-photo.php",
        type: "POST",
        data: formdata,
        processData: false,
        contentType: false,
        success: function (response) {
            console.log(response);
        }
    });
});

PHP:

在我的PHP中,我可以使用$_FILES["images"]访问该图像。我不知道使用formdata传递的其他数据会使用什么。

3 个答案:

答案 0 :(得分:3)

如果要向FormData添加参数,请使用FormData.append

$("#post-image").click(function(){
    formdata.append('name', 'value');
    $.ajax({
        url: "../../build/ajaxes/upload-photo.php",
        type: "POST",
        data: formdata,
        processData: false,
        contentType: false,
        success: function (response) {
            console.log(response);
        }
    });
});

在PHP中使用$_POST["name"]来获取值。

答案 1 :(得分:0)

您需要将表单作为multipart提交。以下是您问题的SO解决方案:Making an HTTP POST call with multipart/form-data using jQuery?

不完全重复,所以我没有将其标记为此类,但它直接引用了您问题的解决方案。

编辑:您会注意到一些答案也将FormData作为解决方案。一旦正确发布数据,您就可以使用PHP中的普通$ _FORM集合访问它。

答案 2 :(得分:0)

如果您有包含多个文件上传的大表单,请不要使用MALSUP JQUERY PLUGIN。它会发送所有表单字段

  $(form).ajaxSubmit();