Я пытаюсь загрузить изображение с помощью API, но каждый раз появляется одна и та же ошибка:
"Ошибка чтения байтов. Неожиданный токен: StartObject. Путь 'picture'"
изображение объявлено как byte[]
в сущности ASP.NET, и я использую formdata
, чтобы опубликовать изображение в угловом
Угловом коде:
onFileChanged(event) {
this.selectedFile = event.target.files[0]
}
adduser() {
this.fd = new FormData();
this.fd.append('picture', this.selectedFile)
this.user.firstname = this.firstname;
this.user.lastname = this.lastname;
this.user.password = this.pass;
this.user.userName = this.email;
this.user.type = this.role;
this.user.picture = this.fd;
alert(this.user.picture)
this.auth.adduser(this.user).subscribe(Response => {
console.log(Response);
this.route.navigate(['login']);
}, error => {
console.log(error)
});
}
.Net код:
[HttpPost]
public async Task < Object > PostAdmin([FromBody] UserModel model) {
{
var profile = new Profile() {
UserName = model.UserName,
lastname = model.lastname,
address = model.address,
firstname = model.firstname,
picture = model.picture,
phone = model.phone,
university = model.university,
Type = model.Type
};
using(var stream = new MemoryStream()) {
profile.picture = stream.ToArray();
}
var user = await _userManager.FindByNameAsync(profile.UserName);
if (user != null) {
return Ok(new {
status = false
});
}
try {
var result = await _userManager.CreateAsync(profile, model.Password);
var role = await _userManager.AddToRoleAsync(profile, model.Type);
return Ok(result);
}
catch (Exception e) {
return BadRequest(new {
status = false, message = e.Message
});
}