场景
背景:后端 ABP, 前端 Angular;
做上传文件功能时,后端使用 IFormFile作为参数,刷proxy到前端后类型报错: Cannot find name 'StringValues'.
解决办法
将IFromFile换成 IRemoteStreamContent;
using Volo.Abp.Content;
public Task<ImportUploadResponse> ImportUploadAsync(List<IRemoteStreamContent> remoteStream)
{
//var stream = remoteStream.GetStream();
//var fileName = Guid.NewGuid().ToString("N");
return Task.FromResult(new ImportUploadResponse());
}
前端代码:
formData append的第一个参数 'remoteStream',必须和 接口的参数名 保持统一;
uploadChangeListener(event) {
const files = event?.target?.files;
const formData: FormData = new FormData();
for (let i = 0; i < files.length; i++) {
formData.append('remoteStream', files[i])
}
this.restService.request<any, any>({
method: 'POST',
url: '/api/app/import/import-upload',
body: formData
},
{ apiName: 'Default' }).subscribe(res => {
console.log(res);
})
}