如何通过angular2中的表单提交上传文件?

时间:2016-12-12 14:23:51

标签: angular form-submit

如何通过angular2中的表单提交上传文件。我想使用 ng2-file-upload 库。但我无法在表单提交中使用它。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:1)

应该可以通过在您的方法中传递上传的文件来实现,该文件可以在提交中调用。

在您的HTML中

<form #sieFileUploadForm="ngForm">
  <input type="file" id="fileItem" 
  value="Browse...">

      在你身上

uploadFile(file){
 console.log(file)
}
  

注意: - 发送到beckend时,你需要像这样使用formdata

uploadFile(file){
 let formData = new FormData();
 formData.append('FILENAME', file);
}

答案 1 :(得分:0)

所以最后我理解你的问题,看起来是你想要随文件一起发送的附加formdata。 创建FileUploader后,您可以使用以下代码添加其他表单:

uploader: FileUploader = new FileUploader({ url: "http://localhost/upload.php" });

  constructor() {
  this.uploader.onBuildItemForm = (item, form) => {
      form.append("key1", "value1");
      form.append("key1", "value2");
    };
}

有人说将此代码放在ngOnInit()中有点漂亮,但我不想让这段代码膨胀,这个决定在这里不是很重要。

之后,您可以检查http帖子的有效负载中的其他帖子数据,例如使用Firefox Developer Tools。他们应该看起来像:

-----------------------------110224700718602891206418821
Content-Disposition: form-data; name="key1"

value1
-----------------------------110224700718602891206418821
Content-Disposition: form-data; name="key1"

value2

(你的边界不一样)

我在项目的GitHub跟踪器上找到了solution