代码之家  ›  专栏  ›  技术社区  ›  vimuth

axios上传图像时发送多个参数

  •  1
  • vimuth  · 技术社区  · 6 年前

    我正在用formdata和axios上传图像。我使用symfony作为我的后端,我需要访问我的图像文件和其他参数。这是我的axios代码。

    axios.post(testUp, { data: formData, ad: 12 }, {
                        headers: {
                            'Content-Type': 'multipart/form-data'
                        }
                    }).then(response => {
    
                    });
    

    /**
     * @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);
                 });
    

    但我还需要发送其他参数。

    2 回复  |  直到 6 年前
        1
  •  2
  •   Daniel    6 年前

    不能将FormData与JSON混合使用。这是一个相关的问题

    Send FormData object AND an additional parameter via ajax

    如果只有一个参数-ad=12,我建议使用代码:

    axios.post(testUp + "?" + (new URLSearchParams({ad: 12})).toString()
    , formData, {
                     headers: {
                         'Content-Type': 'multipart/form-data'
                     }
                 }).then(response => {
                     alert('*');
                     console.log(response);
                 });
    
        2
  •  1
  •   Nek    6 年前

    在Symfony端,您应该使用一个表单,以便可以接收多种类型的数据。请参阅此处的文档: https://symfony.com/doc/current/forms.html