public async Task <IActionResult> UploadMulit(IFormCollection formCollection, CancellationToken cancellationToken) { FormFileCollection filelist = (FormFileCollection)formCollection.Files; var param = new MultipleFileUploadParam() { Request = Request, FormFiles = filelist.ToList(), RootPath = Web.WebRootPath, Module = "Test", Group = "Logo" }; var result = await _fileUploadService.UploadAsync(param, cancellationToken); return(View(result)); }
/// <summary> /// 上传文件。多文件 /// </summary> /// <param name="param">参数</param> /// <param name="cancellationToken">取消令牌</param> public async Task <IEnumerable <FileInfo> > UploadAsync(MultipleFileUploadParam param, CancellationToken cancellationToken = default(CancellationToken)) { if (param.FormFiles == null || !param.FormFiles.Any()) { if (param.Request.Form.Files != null && param.Request.Form.Files.Any()) { param.FormFiles = param.Request.Form.Files.ToList(); } } if (param.FormFiles == null || !param.FormFiles.Any()) { throw new ArgumentNullException("请选择文件!"); } var tasks = new List <Task <FileInfo> >(); foreach (var formFile in param.FormFiles) { tasks.Add(SaveAsync(formFile, param.RelativePath, param.RootPath, cancellationToken)); } return(await Task.WhenAll(tasks)); }