上传多个图像不会添加到FormData

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上传多个图像不会添加到FormData相关的知识,希望对你有一定的参考价值。

我有检测文件的方法(在这种情况下是图像):

detectFiles(event) {
this.formData = new FormData();
this.urls = [];
this.files = event.target.files;
if (this.files) {
  for (const file of this.files) {
    const reader = new FileReader();
    reader.onload = (e: any) => {
      this.urls.push(e.target.result);
    };
    reader.readAsDataURL(file);
  }
}}

我得到的文件保存在this.files和提交按钮我这样做:

  submitForm(value: any) {
if (value) {
  this.formData.append('Title', value.title);
  this.formData.append('Date', value.date);

  for (let i = 0; i < this.files.length; i++) {
    const chosenFileName = this.files[i].name;
    const chosenFile = this.files[i];
    this.formData.append('file', chosenFileName, chosenFile);
  }

  this.authService.uploadFile(this.formData)
    .subscribe(
      (response) => {

      },
      (error) => {
      }
    );
}}

在这里,我从输入中添加值,然后通过循环添加我已经获得的所有文件。在示例中,我添加了图片,但它们没有出现在请求中。 enter image description here

我在这做错了什么?

答案

这个错误是假的:

for (let i = 0; i < this.files.length; i++) {
    const chosenFileName = this.files[i].name;debugger;
    const chosenFile = this.files[i];
    this.formData.append('file', chosenFile); // <----- changed this line
  }

以上是关于上传多个图像不会添加到FormData的主要内容,如果未能解决你的问题,请参考以下文章

[FE] 用 FormData 上传多个文件到 MultipartFile[] 接口

为啥 formData 不适用于多个文件?

无法在客户端附加带有多个压缩图像的 FormData() 对象

在 Angular 5 中使用文件上传保存 FormData

vue使用formdata上传多个图片,springboot以文件数组的形式接受

无法在 Laravel 中使用 vue.js 上传多个图像