Exemple #1
0
        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));
        }