Как передать файл изображения из API в интерфейс? Преобразование строки 64 в байт [] - PullRequest
0 голосов
/ 24 марта 2019

Я делаю внешний интерфейс отдельно от внутреннего.Я использую 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 пустой файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...