【问题标题】:Angular 7 - Upload file to serverAngular 7 - 将文件上传到服务器
【发布时间】:2019-10-18 21:06:08
【问题描述】:

我正在尝试将输入文件发送到服务器。当输入文件有数据在控制台返回时

 FileList {0: File, length: 1}0: File {name: "8mn4p369li331.png", lastModified: 1567609045831, lastModifiedDate: Wed Sep 04 2019 16:57:25 GMT+0200 (hora de verano de Europa central), webkitRelativePath: "", size: 9587062, …}length: 1__proto__: FileList

我尝试将它放在这样的 formData 元素中,但不起作用

  save(form: NgForm) {
       const formData: FormData = new FormData();
       formData.append('file', this.selectedFiles, this.fileName)
       form.value["file"] = formData;
}

那么:将文件(以表单形式)上传到服务器的正确方法是什么?

更新:onChange 函数

  fileEvent(event:any){
    this.selectedFiles = event.target.files;
    this.fileName = this.selectedFiles[0].name;
    console.log(this.selectedFiles);

}

【问题讨论】:

标签: angular


【解决方案1】:

只要你有正确的文件:

let formdata = new FormData();
formdata.set('file', file, "fileName");

我相信每个变量只能设置一个文件...

编辑:我的文件变量是一个 Blob...

Blob {size: 3151, type: "application/pdf"}

【讨论】:

  • 无法对“FormData”执行“设置”:参数 2 不是“Blob”类型。参数 2 是 this.selectedFiles[0].name;
  • 在获取 blob 方面需要帮助吗?
【解决方案2】:

你的保存功能应该是

save(form: NgForm) {
   const formData: FormData = new FormData();
   formData.append('file', this.selectedFiles[0], this.fileName)
   form.value["file"] = formData;
}

【讨论】:

  • 无法对“FormData”执行“追加”:参数 2 不是“Blob”类型。
  • 第二个参数应该是this.selectedFiles.files[0]
  • formData.set('file', this.selectedFiles, this.fileName); form.value["file"] = formData.get("file");作品
猜你喜欢
  • 2019-11-22
  • 2017-06-05
  • 2017-07-04
  • 1970-01-01
  • 2020-05-18
  • 1970-01-01
  • 2016-01-28
  • 2011-11-16
  • 2015-06-27
相关资源
最近更新 更多