使用此代码,我无法将文件从 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) };
}
如果您通过表单发送它们,请尝试将类型从 byte[] 更改为 IFormFile。