我正在上传带有formdata和axios的图像。我在后端使用symfony,我需要访问我的图像文件和其他参数。这是我的axios代码。
axios.post(testUp, { data: formData, ad: 12 }, {
headers: {
'Content-Type': 'multipart/form-data'
}
}).then(response => {
});
这是我的symfony代码。
/**
* @Route("/test_up", name="test_up", methods={"GET","POST"})
*/
public function testUp(Request $request, CarRepository $carRepository) {
dd($request->files->all());
}
不幸的是,我的输出为null。我从上传的图像中获取formdata,它是一个formdata对象。如果我这样做但需要两个参数都可以。
axios.post(testUp, formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
}).then(response => {
alert('*');
console.log(response);
});
但是我也需要发送其他参数。
答案 0 :(得分:1)
您不能将FormData与JSON混合。是有关的问题
如果只有一个参数-ad = 12,我建议使用代码:
axios.post(testUp + "?" + (new URLSearchParams({ad: 12})).toString()
, formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
}).then(response => {
alert('*');
console.log(response);
});
答案 1 :(得分:1)
在Symfony方面,您应该使用表格,以便您可以接收多种类型的数据。在此处查看文档:{{3}}
在vuejs / axios方面,您无法同时发送json内容和表单数据内容(因为它是2种不同类型的数据)。但是您可以在表单数据中添加一些内容(就像在Symfony表单中可以包含其他字段的文件一样。)