无法在表单数据中附加文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在表单数据中附加文件相关的知识,希望对你有一定的参考价值。

我想使用formData和axios将文件上传到Symfony 3后端,我的问题是没有追加文件,但其他文本输入成功发送到后端

let company = document.getElementById('company_photo');
let companyLogo = company.files[0];

let form =document.getElementById('my-form-id');
let data = new FormData(form);
data.append('profile', companyLogo, companyLogo.name)


const config = {
     headers: {
           'content-type': 'multipart/form-data'
     }
 }
  axios.post(url, data, config)..................

问题是,当我试图从Symfony 3返回文件时

return new JsonResponse(['files' => $request->files->all()])

它只返回空对象

profile:{}

所有其他输入类型文本都已成功发送到服务器

查看网络选项卡,有效负载看起来像

clients_per_month: 4
message: rurutrurturrurtuturturt
profile: (binary)

配置文件变为二进制

表格看起来像这样

<form id='some-id' method="POST" enctype="multipart/form-data">
    <input type="text" name="blah" />
    <input type="file" name="filenameexample" id="exampleid">
    ........................

查看控制台进行调试,

for(var key of data.entries()) {
   console.log(key[0] + ','+key[1]);
}

结果导致了

profile, [object File]

有什么想法解决这个问题?

更新,文件看起来像这样

     console.log(company.files[0])

导致

     File {name: "Capture.PNG", lastModified: 1546921233553, 
         lastModifiedDate: Tue Jan 08 2019 12:20:33 GMT+0800 (Pluto 
         Standard Time), webkitRelativePath: "", size: 735825, …}
         lastModified: 1546921233553
         lastModifiedDate: Tue Jan 08 2019 12:20:33 GMT+0800 (Venus 
         Standard Time) {}
         name: "Capture.PNG"
         size: 735825
         type: "image/png"
         webkitRelativePath: ""
         __proto__: File
答案
'content-type': 'multipart/form-data'

MIME类型中缺少必需的边界参数。

删除该行。允许XMLHttpRequest从FormData对象推断MIME类型。

以上是关于无法在表单数据中附加文件的主要内容,如果未能解决你的问题,请参考以下文章

分离本地数据库.mdf,复制,附加新文件

无法将其他flas动画片段访问到动作脚本3

AJAX - 如何从输入文件中获取数据以附加表单数据?

html 将以编程方式附加外部脚本文件的javascript代码片段,并按顺序排列。用于响应式网站,其中ma

如何使用javascript将表单数据附加并保存到txt文件

表单数据仅附加最后的多项选择