2012-12-09 63 views
1

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

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传递的附加数据。

回答

0

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

不是一个确切的重复,所以我没有把它标记为这样,但它是对你的问题的解决方案的直接参考。

编辑:你会注意到一些答案也引用FormData作为解决方案。一旦正确地获取了数据发布,就可以使用PHP中的正常$ _FORM集合来访问它。

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

0

如果你有大单与多文件上传,然后不使用MALSUP JQUERY PLUGIN。它会将您的所有表单域只有

$(form).ajaxSubmit();