3

我想在identity用户中上传个人资料图片并在帐户管理中对其进行更新。如果有任何关于 asp.net 核心的好例子的帖子,请给我链接。

4

1 回答 1

0

我自己用 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

PostAsync 类之后的 GetUniqueFileName 类:

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

您还必须添加 IWebHostEnvironment 依赖注入并使用 multipart/form-data enctype 更新 cshtml 表单。也不要忘记遵守 .net 文档规则。祝你好运!

于 2019-11-09T09:13:44.237 回答