public async Task <object> UploadFilesAsync(List <IFormFile> files) { uploads = new List <uploadStatus>(); List <Task> tasks = new List <Task>(); foreach (var formFile in files) { string fileName = ContentDispositionHeaderValue.Parse(formFile.ContentDisposition).FileName.Trim('"'); uploadStatus file = new uploadStatus(); file.url = fileName; string targetPath = uploadTarget + fileName; try { using (var stream = new FileStream(targetPath, FileMode.Create)) { string newFile = uploadTarget + fileName; Task copyFile = formFile.CopyToAsync(stream);// <<==== why is this erroring out here. tasks.Add(copyFile); file.success = true; } } catch (Exception err) { file.success = false; file.errorMessage = err.Message; } uploads.Add(file); } /* merge all uploads */ Task mergedTasks = Task.WhenAll(tasks); return(mergedTasks); }
/// <summary> /// 大文件上传上下文类,构造函数 /// </summary> /// <param name="page">上传文件的页面</param> /// <param name="TempFileDir">上传文件存放的临时目录</param> internal UploadContext(System.Web.UI.Page page, string TempFileDir) { m_TempFileDir = TempFileDir; if (m_TempFileDir.Trim()[m_TempFileDir.Trim().Length - 1] != '\\') { m_TempFileDir = m_TempFileDir.Trim() + "\\"; } m_GUID = Guid.NewGuid().ToString(); page.ClientScript.RegisterHiddenField("UploadID", m_GUID); page.Response.Expires = 1; m_status = uploadStatus.Initializing; }