Во-первых, обратите внимание, что вы можете добавлять только двоичные данные или строку FormData.append(). Предоставление объекта, поскольку вы являетесь средством, которое toString()будет вызвано на него, поэтому значение действительно станет "[object Object]".
Чтобы исправить это, вам понадобится вручную JSON.stringifyобъект перед тем, как вы append()это:
let obj = {
'label1':'value1'
};
form_data.append('file', file_data);
form_data.append('json', JSON.stringify(obj));
Затем в вашем PHP вы можете десериализовать использование JSON json_decode().
Однако было бы гораздо проще просто добавить значения к 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'];