我有一个关于在Angular 7应用程序中向.NET Core 3服务器发送File
集合的问题。
我已经有了发送单个File
到服务器的功能代码。但是,当我尝试发送一组File
- 即:File[]
时出现了问题。这是控制器操作:
[HttpPost]
public async Task<IActionResult> Upload([FromForm(Name = "files")] List<IFormFile> files)
{
// implementation...
{
我使用与发送单个文件到服务器相同的代码将 FormData
发送出去:
const formData = new FormData();
formData.append('files', this.files);
这会导致编译器出现错误(见屏幕截图):
FormData 无法处理 File[]
集合。
如果我更改相同的代码以处理单个文件,例如通过选择集合中的第一个元素,那么该文件将成功发送到服务器。如下所示:
const formData = new FormData();
formData.append('files', this.files[0]);
请求是这样发送的:
const httpOptions = {
headers: new HttpHeaders({ 'Content-Disposition' : 'multipart/form-data' }),
};
postPhotos(model: FormData): Observable<any | ErrorReportViewModel> {
return this.http.post('api/Photograph', model, httpOptions)
.pipe(
catchError(error => this.httpErrorHandlerService.handleHttpError(error)));
}
我还试图使用模型将文件发送到请求体中。但是这并不起作用:服务器接收到了Null
类型的IFormFile
集合。我的研究表明,应该采用FormData方式来发送数据。但是FormData似乎不能接受文件集合。
我该如何将文件集合发送到服务器?