Beispiel #1
0
        public async Task <ActionResult> SaveAsync(IEnumerable <IFormFile> files, string data, UserManager <Models.User> _userManager)
        {
            // The Name of the Upload component is "files"
            if (files != null)
            {
                foreach (var file in files)
                {
                    var fileContent = ContentDispositionHeaderValue.Parse(file.ContentDisposition);

                    var userId = HttpContext.User.Identity.Name;
                    // Some browsers send file names with full path.
                    // We are only interested in the file name.
                    var format       = Path.GetExtension(fileContent.FileName.ToString().Trim('"'));
                    var filename     = Guid.NewGuid().ToString() + format;
                    var physicalPath = Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\uploads\" + userId, filename);
                    var path         = Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\uploads\" + userId);

                    bool exists = Directory.Exists(path);

                    if (!exists)
                    {
                        Directory.CreateDirectory(path);
                    }

                    // The files are not actually saved in this demo
                    using (var fileStream = new FileStream(physicalPath, FileMode.Create))
                    {
                        await file.CopyToAsync(fileStream);
                    }

                    if (data == "avatar")
                    {
                        var user = _accountRepository.GetUser(userId, filename, _userManager);
                    }
                    else
                    {
                        DocumentViewModel document = new DocumentViewModel()
                        {
                            Id          = (Guid.NewGuid()).ToString(),
                            DocumentUrl = filename,
                            Type        = data,
                            UserId      = userId
                        };

                        _accountRepository.AddDoument(document);
                    }
                }
            }

            // Return an empty string to signify success
            return(Content(""));
        }