Я делаю внешний интерфейс отдельно от внутреннего.Я использую Vue + Axios для запросов и использую aspnet.core в качестве сервера.Я использую Identity для работы с пользователем и хочу получить фотографию профиля.
Итак, я загружаю файл JSON с некоторой информацией, и одна из них - это изображение, которое я конвертирую в строку 64, отправляюв конец и там я конвертирую в byte [] и сохраняю в базу данных.Затем я делаю путь в контроллере только для отправки фотографии.
Я также пытался сохранить только строку base64 и отправить ее обратно во внешний интерфейс, и это работает для преобразования строки в изображение снова во внешнем интерфейсе.end.
Вот функция javaScript для получения 64BaseString:
OnFilePicked (event)
{
const files = event.target.files
let filename = files[0].name
if (filename.lastIndexOf('.') <= 0)
{
return alert('Please add a valid file!')
}
const fileReader = new FileReader()
fileReader.addEventListener('load', () =>
{
this.imageUrl = fileReader.result
})
fileReader.readAsDataURL(files[0])
},
Код загрузки AspnetCore C #:
user.ProfilePicture = Convert.FromBase64String(userUpdate.ProfilePicture);
var result = await UserManager.UpdateAsync(user);
if (result.Succeeded)
{
return Ok();
}
ПОЛУЧИТЬ КОД ФАЙЛА
public async Task<IActionResult> GetProfilePicture(string id)
{
var user = await UserManager.FindByIdAsync(id);
if (user.ProfilePicture == null)
{
return File(user.ProfilePicture, "image/png");
}
return File("~/images/capas/capa-vazia.png", "image/png");
}
}
Но я получаю только png пустой файл.