public async Task <IEnumerable <FileSafeResult> > UploadMultipleFiles(HttpRequestMessage request) { // MultipartFormDataStreamProvider reads form data only after file processing // so we have to put files to the temporary folder firstly var tempFolder = PathProcessor.CreateFolder(Guid.NewGuid().ToString()); var uploadProvider = new MultipartFormDataStreamProviderSafe(tempFolder); await request.Content.ReadAsMultipartAsync(uploadProvider); // and now we can move files to the "idUpload" folder var idUpload = uploadProvider.FormData["idUpload"]; var idUploadFolder = PathProcessor.CreateFolder(idUpload); return(uploadProvider.FileData.Select(file => MoveFile(idUploadFolder, idUpload, file))); }