Я настраиваю проект из трех частей: веб-приложения React, мобильного приложения React-Native и общего ASP.NET Core backend . Каждая часть этого - первая для меня, это моя первая работа разработчика.
В основе проекта лежат личные фотографии, которые были взяты из мобильного приложения, отправлены на сервер и позже отправлены обратно в оба приложения для отображения в виде библиотеки фотографий.
Этот вопрос касается последней части: получение файла jpeg из серверной части в приложение mobile и его фактическое отображение.
На первых этапах разработки приложение отображало картинки с помощью простого URL-адреса до их точного местоположения. Каждый может набрать URL и увидеть картинку, чтобы она не была приватной.
Затем я попытался на самом деле попросить мой бэкэнд через контроллер выслать картинку таким образом:
var image = System.IO.File.OpenRead(path);
return File(image, "image/jpeg");
Это отлично сработало на сайте React. Но при задании URL-адреса контроллера, как и на сайте, компонент React-Native <Image />
ничего не отображал.
Затем, только для мобильного приложения, я отправил обратно с контроллера картинку в формате Base64:
var image = System.IO.File.ReadAllBytes(path);
return "data:image/jpeg;base64," + Convert.ToBase64String(image);
Технически это сработало, но значительно ухудшило производительность приложения, вызовы моего бэкэнда и отображение изображений само по себе занимают довольно много времени.
Я чувствую, что эта проблема действительно из-за моей неопытности, я, наверное, с самого начала ошибаюсь.
Есть ли другой способ отправить или отобразить личные фотографии, подобные этой?
Большое спасибо за ваше время.