jQuery + php 文件上传。传递多个参数

mik*_*kek 5 php ajax upload jquery

如何通过 $.ajax 将额外的变量传递给 post.php?

我的第一个变量是

var form_data = new FormData($(this)[0])
Run Code Online (Sandbox Code Playgroud)

我可以单独传递它,但是如果我想添加另一个变量并创建一个数组

data {
    "form_data": form_data,
    "name": "hello"
}
Run Code Online (Sandbox Code Playgroud)

它不起作用。

我目前的代码:

$(document).ready(function() { 
    $("form#data").submit(function(){

        var form_data = new FormData($(this)[0]);

        $.ajax({
            url: 'post.php',
            type: 'POST',
            data: form_data,
            success: function (data) {

                $('#result').html(data); 

            },
            contentType: false,
            processData: false
        });

        return false;
    });
});

<div id="result"></div>

<form id="data" method="post" enctype="multipart/form-data">
    <input name="file" type="file" />
    <button>Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)

paq*_*ino 0

当你用 PHP 取回它时,我会 JSON.stringify 然后 json_decode

var data = JSON.stringify({ /* 对象 */ });

然后在你的 php $data = json_decode(....);