Во-первых, обратите внимание, что вы можете добавлять только двоичные данные или строку 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'];