在Angular应用中,我通过以下方法将对象列表添加到数组(演示列表)中:
updateList(list: any) {
this.demolist = Array.apply(this, list);
console.log(this.demolist);
}
当用户单击下面的“文件上载”控件并添加文档时,就会调用上述方法。
<upload formControlName="fileUpload" #fileUpload (listChange)="updateList($event)" data-kind="primary" [imagePreview]="true" restrictFiles=".pdf,.doc,.docx">
</upload>
当用户单击表单上的Submit按钮时,将执行以下代码:
HTML:
<form (ngSubmit)="onSubmit(emailForm.value)">
</form>
TS:
onSubmit(formContent): void {
this.postData(formContent);
}
但是目前,提交时表单中的fileUpload控件不包含任何文件。
有人可以告诉我如何将 this.demolist 中的文件添加到 fileUpload 中的控件中我的emailForm使用 updateList()方法?
非常感谢!
答案 0 :(得分:0)
Angular本身并不支持文件上传。您必须做一些工作才能实现它。对我有用的是,我使用jQuery选择文件要上传到的输入,然后从那里使用FormData接口来获取文件,然后从那里进行操作。由于我使用标准输入来执行此操作,因此您的解决方案将与我的解决方案有所不同,但它应该为您指明正确的方向。
const files = $(`#fileUpload`).prop('files');
if (get(files, '[0].name')) {
const formData: FormData = new FormData;
formData.append('file', files[0], files[0].name);
input.value = formData;
}