如何将照片从 angular 上传到 .net?

问题描述 投票:0回答:1

使用此代码,我无法将文件从 angular 上传到 .net。我从角度输入中获取文件,然后将表单发送到 .net.

我有一个包含姓名、姓氏、照片和简历等的角度形式的registerForm。但是照片和简历是文件,我无法发送它们。我收到以下错误:“JSON 值无法转换为 System.Byte[]。”.

我该如何解决?

public class DoctorRegisterDto
{
    public string Firstname { get; set; }
    public string Lastname { get; set; }
    public string Password { get; set; }
    public string Idnumber { get; set; }
    public string Email { get; set; }
    public int Views { get; set; }
    public string Categories { get; set; }
    public string Description { get; set; }
    public byte[] Photo { get; set; }
    public byte[] Cv { get; set; }
}
public class Doctor
{
    public int Id { get; set; }
    public string Firstname { get; set; }
    public string Lastname { get; set; }
    public byte[] PasswordHash { get; set; }
    public byte[] PasswordSalt { get; set; }
    public string Idnumber { get; set; }
    public string Email { get; set; }
    public string Categories { get; set; }
    public int Views { get; set; }
    public string Description { get; set; }
    public byte[] Photo { get; set; }
    public byte[] Cv { get; set; }
}



    [HttpPost("register-doctor")]
    public async Task<ActionResult<UserDto>> Register([FromBody] DoctorRegisterDto registerDto)
    {
        using var hmac = new HMACSHA512();

        var user = new Doctor
        {
            Firstname = registerDto.Firstname.ToLower(),
            Lastname = registerDto.Lastname.ToLower(),
            Idnumber = registerDto.Idnumber,
            Email = registerDto.Email.ToLower(),
            PasswordHash = hmac.ComputeHash(Encoding.UTF8.GetBytes(registerDto.Password)),
            PasswordSalt = hmac.Key,
            Categories = registerDto.Categories,
            Views = 0,
            Description = registerDto.Description,
            Photo = registerDto.Photo,
            Cv = registerDto.Cv
        };
        await _context.Doctors.AddAsync(user);
        await _context.SaveChangesAsync();

        return new UserDto { Username = user.Firstname, Token = _tokenService.CreateTokenDoctor(user) };
    }



    
javascript c# .net angular base64
1个回答
0
投票

如果您通过表单发送它们,请尝试将类型从 byte[] 更改为 IFormFile。

© www.soinside.com 2019 - 2024. All rights reserved.