Как загрузить изображение профиля и обновить его в идентичности asp.net core 3 - PullRequest
0 голосов
/ 09 ноября 2019

Я хочу загрузить изображение профиля в личность пользователя и обновить его в управлении учетной записью. если есть какой-нибудь пост с хорошими примерами для ядра asp.net, пожалуйста, дайте мне ссылки.

1 Ответ

0 голосов
/ 09 ноября 2019

Я сделал это сам с помощью метода FileForm. Сначала необходимо добавить строковое свойство в классе пользователя (https://docs.microsoft.com/en-us/aspnet/core/security/authentication/add-user-data?view=aspnetcore-3.0&tabs=visual-studio).

        public string Avatar { get; set; }

, а затем обновить файлы управления / индексации, следуя документации. Теперь, Как создать систему загрузки файлов? Мне понравился приведенный ниже код, но если мне нужно что-то изменить в целях безопасности, пожалуйста, не забудьте помочь.

                    if (Input.Avatar != null)
                {
                    string existfile = Path.Combine(hostingEnvironment.WebRootPath, "uploads", user.Avatar);
                    System.IO.File.Delete(existfile);

                }
                var uploads = Path.Combine(hostingEnvironment.WebRootPath, "uploads", "avatar");
                var filePath = Path.Combine(uploads, fileName);
                this.Image.CopyTo(new FileStream(filePath, FileMode.Create));
                user.Avatar = fileName; // Set the file name

Класс GetUniqueFileName после класса PostAsync:

        private string GetUniqueName(string fileName)
    {
        fileName = Path.GetFileName(fileName);
        return Path.GetFileNameWithoutExtension(fileName)
               + "_" + Guid.NewGuid().ToString().Substring(0, 4)
               + Path.GetExtension(fileName);
    }

Вы также должны добавить инъекцию зависимостей IWebHostEnvironment и обновить форму cshtml с помощью многостраничного / form-data enctype. Не забывайте также соблюдать правила документации .net. Удачи!

...