1

我正在使用 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 传递的附加数据。

4

3 回答 3

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"]获取值。

于 2012-12-09T21:55:33.797 回答
0

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

不是完全相同的副本,因此我没有将其标记为这样,但它是对您问题的解决方案的直接引用。

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

于 2012-12-09T21:51:36.917 回答
0

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

  $(form).ajaxSubmit();    
于 2014-09-08T03:58:33.167 回答