如何使用formdata上传多张图片

发布于 2022-09-05 10:14:08 字数 756 浏览 9 评论 0

let file = this.$refs.upFile.files
        console.log(file)
        let formData = new FormData()
        for (var i = 0; i < file.length; i++) {
          formData.append('file', file[i])
        }
        console.log(formData.get('file'))
//        formData.append('file', file)
        formData.append('types[]', 'main')
        const url = 'http://sylius.papamk.com/app_dev.php/api/files/'
        const config = {
          headers: {
            'Content-Type': 'multipart/form-data',
            'authorization': 'Bearer SampleToken'

          },
          method: 'POST',
          onUploadProgress: function (progressEvent) {
          }
        }
        axios.post(url, formData, config)

只能上传一张图片,怎么设置多张同时上传

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

内心激荡 2022-09-12 10:14:08

我跟楼主的实现方式差不多,也是基于formdata的提交,我后台是基于php,之前用nodejs做的是单图片逐个上传,但是毕竟公司后端必须要php的上传方式,而且还需要在提交表单的时候统一上传,如果改成多图片基于楼主的方式。应该是写成这样。

      var formData = new FormData()
      // 自定义formData中的内容
      for (let i = 0; i < fileList.length; i++) {
        formData.append('file[]', fileList[i])
      }

最大区别应该是把append 的名称改为 file[] 吧

图片描述
这是我的结果截图
图片描述

后端就是稍微打印了下文件而已。

有关这方面的图片上传的代码,我会上传到github https://github.com/MontageD/m...
有兴趣的可以关注一下,谢谢

隔岸观火 2022-09-12 10:14:08

应该是后台没取多个?你看看network面板你前端是不是传输了多个

夜司空 2022-09-12 10:14:08

多张上传要改成formData.append("file[]", file[i]),input要加multiple;

clipboard.png

快乐很简单 2022-09-12 10:14:08

F12看看header,如果是header只有1个图片文件就是自己的原因(没装入FormData),如果有多个但是报错就是后台的原因
我这里是java后台,做FormData接收的时候,文件是在一个数组里的。数组名xxx就是append(xxx,file[i]);

clipboard.png

上传headers截图

clipboard.png

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文