public async Task <IActionResult> Upload(FileData fileData) { if (ModelState.IsValid) { var CurrentDate = DateTime.Now; var UploadDate = CurrentDate.ToString("yyyyMMdd_hhmmss"); var userfileName = User.Identity.Name.ToString(); var RootFolder = _hostingEnvironment.WebRootPath; var UsersFileLocation = "UsersDirectory"; var RootFfolderString = "wwwroot"; var ObjFileExtension = ".ifc"; var UserDirectory = $"{_hostingEnvironment.WebRootPath}/{UsersFileLocation}/{userfileName}/{UploadDate}"; //var UserFilesDirectoryRelative = $"{RootFfolderString}/{UsersFileLocation}/{userfileName}/{UploadDate}"; var UserFilesDirectoryRelative = $"{UsersFileLocation}/{userfileName}/{UploadDate}"; //var ImageFileLocationPaths = new List<String>(); //Check if user Directory exsists , if not creates new directory var exsits = Directory.Exists(UserDirectory); if (!exsits) { Directory.CreateDirectory(UserDirectory); } foreach (var IFCFile in fileData.IFCFile) { var filePathName = ContentDispositionHeaderValue.Parse(IFCFile.ContentDisposition).FileName.Trim('"'); var fileExtention = Path.GetExtension(filePathName); if (!(fileExtention == ".ifc" || fileExtention == ".IFC")) { return(RedirectToAction("ErrorPage")); } var uploads = Path.Combine(RootFolder, UsersFileLocation, userfileName, UploadDate); var fileName = Guid.NewGuid().ToString("N").Substring(0, 10); var FileNameFull = fileName + fileExtention; var FileNameObj = fileName + ObjFileExtension; var StaticPath = Path.Combine(uploads, filePathName); var StaticPathNameNoExtension = Path.Combine(uploads, filePathName); var RelativePaths = $"{UserFilesDirectoryRelative}/{fileName}" + $"{ObjFileExtension}"; //the image will be saved with a unique filename FileStream DestinationStream = new FileStream(StaticPath, FileMode.CreateNew); //ImageFileLocationPaths.Add(PathObjRelative); //the image will be saved with a unique filename // ImageFile.CopyToAsync(DestinationStream); IFCFile.CopyTo(DestinationStream); DestinationStream.Flush(); DestinationStream.Dispose(); DestinationStream.Close(); var currentUser = await _userManager.FindByNameAsync(User.Identity.Name); var ObjectFile = new IFCFile { FileName = filePathName, StaticFilePath = StaticPathNameNoExtension, RelativeFilePath = uploads,// Replaced with directory path FK_ApplicatioUserId = currentUser.Id, UploadedTime = CurrentDate }; repo.Add(ObjectFile); } } //var ImageFileLocationArray = ImageFileLocationPaths.ToArray(); return(RedirectToAction("UploadCompelete")); }