jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 在ajax调用中使用FormData发送JSON对象和文件,并在PHP中访问json对象大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我试图在ajax调用中发送json对象和文件,如下所示

使用Javascript

$('#btn').on('click',function(){
    var file_data = $('#imgFile').prop('files')[0];
    var form_data = new FormData();
    let jsonObj = {
        'label1':'value1'
    };
    form_data.append('file',file_data);
    form_data.append('json',jsonObj);//json object which I am trying to send
    $.ajax({
        url: 'uploader.PHP',cache: false,contentType: false,processData: false,data: form_data,type: 'post',success: function(PHP_script_responsE){
            console.log(PHP_script_responsE);
        }
    });
});

PHP中我能够成功检索ajax调用中发送的文件,但我不知道如何访问与该文件一起发送的json对象

PHP

<>PHP
if ( 0 < $_files['file']['error']="" )="" {="" echo="" 'error:="" '="" .="" $_files['file']['error']="" .="">

请让我知道如何在PHP中检索json对象

最佳答案
首先,请注意您只能通过FormData.append()方法追加二进制数据或字符串.提供一个对象意味着将在其上调用toString(),因此该值实际上将变为“[object Object]”.

要修复此问题,您需要在追加()之前手动JSON.Stringify对象:

let obj = {
    'label1':'value1'
};
form_data.append('file',file_data);
form_data.append('json',JSON.Stringify(obj));

然后在PHP中,您可以使用json_decode()对JSON进行反序列化.

但是,直接将值附加到FormData对象会简单得多.这样您就不需要手动序列化/反序列化任何东西:

form_data.append('file',file_data);
form_data.append('label1','value1');
form_data.append('foo','bar');

然后在你的PHP中:

var label = $_POST['label'];
var foo = $_POST['foo'];

大佬总结

以上是大佬教程为你收集整理的javascript – 在ajax调用中使用FormData发送JSON对象和文件,并在PHP中访问json对象全部内容,希望文章能够帮你解决javascript – 在ajax调用中使用FormData发送JSON对象和文件,并在PHP中访问json对象所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。