javascript - 如何在角度 4 的单个 api 请求中上传文件和表单数据
问题描述
这是我用于上传表单和数据的代码片段。我可以将表单数据发布到 api 但不是文件。
admin.component.ts
private onFileChange(event: any) {
// let reader = new FileReader();
console.log("in file change method");
if (event.target.files && event.target.files.length > 0) {
this.file = event.target.files[0];
console.log(event.target.files);
}
}
private onSubmit(userform: any) {
let _formData= new FormData();
console.log(userform.value);
userform.value.IdpMetadataFile = this.file;
console.log(userform.IdpMetadataFile)
console.log('formData', userform.value);
this._adminServices.saveAdminConfig(userform.value).subscribe(response => {
console.log(response);
this.saveAdmin = true;
});
console.log("save admin " + this.saveAdmin);
}
....admin.component.html...
<div class="form-group">
<p>Browse IDP Metadata file</p>
<input type="file" name="IdpMetadataFile " id="IdpMetadataFile " (change)="onFileChange($event)" [(ngModel)]="ViewAdminConfigData.IdpMetadataFile "
#idpMetaFileName="ngModel">
<br>
解决方案
您必须将文件附加到 formdata 对象
onSubmit(){
let _formData = new FormData();
_formData.append('file', this.file);
// call api to send the data
}
推荐阅读
- javascript - 我该如何修复这个照片库?
- azure - Azure Bot Composer 框架 - 对话循环
- r - 通过将“类型”作为输入传递给 R 中的列来过滤数据框
- swift - 如何在 IOS15 中检查 On-Device 模式转换
- javascript - 如何在不重新加载的情况下单击检查密码(表单)以及是否正确在同一页面上显示隐藏的 div?
- android - Kotlin:如何在适配器函数中访问我的数组?
- asp.net-core - 为什么找不到合适的方法来覆盖?
- serial-port - 通过 RS232 串口控制 BenQ MW632ST 投影机
- python - 如果第一列的顺序无关紧要,Pandas 进行多列排序的最有效方法
- python - 对除一个以外的所有列进行分组,并在最后一列上求和