Каков наилучший способ сохранения и чтения изображения в Angular 5?

#angular #file

#angular #файл

Вопрос:

У меня есть приложение Angular 5 с Java rest services, приложение Java сохраняло изображения в папке, которая находится за пределами приложения Java. Теперь Angular предполагает чтение этих изображений. Поскольку эти изображения используются обоими приложениями совместно, имеет смысл сохранить их снаружи, но это не работает или вы не уверены, как это сделать.

Пример сценария, который у меня есть: приложение Java сохраняло изображения в:

 C:UsersMyNameDocumentsworkspacemyentitiy
  

Компонент Angular имеет следующий шаблон:

 <img [src]=imagesPath alt="">
  

Путь к изображению, объявленный внутри компонента:

 public imagesPath :any = "../myentitiy/1/myfiles/1/body.png";
  

Папка «Мои ресурсы» (которая не содержит изображения, которые мне снова нужны в качестве требования):

 C:UsersMyNameDocumentsworkspaceMyAngularAppsrcassets
  

Я пытался изменить imagesPath на другой путь, но не смог заставить его работать,
есть идеи, как Angular может получить доступ к файлам извне или мне нужно изменить Java-приложение, чтобы сохранить в папке активов Angualr?

Спасибо.

Ответ №1:

То, что вы пытаетесь сделать, неправильно. Подумайте о развертывании. Что вы хотите сделать, это,

Из интерфейса вы можете загружать изображения. Эти изображения будут загружены на серверную часть, так что вы сможете сохранить изображение в определенной папке на ftp-сервере. Теперь вы можете сохранить URL этого изображения в базе данных. Когда вы загружаете эти изображения из интерфейса, серверная часть отправляет вам URL-адреса изображений, загруженные из базы данных.

Затем вы можете показать эти изображения.

Сохранение общего расположения работает только при разработке вашего приложения, но не при его развертывании.

В целях разработки вы можете попытаться сохранить все изображения внутри папки и сохранить URL-адреса. Для размещения изображений можно использовать веб-сервер Chrome. Это только для целей разработки. В любом случае, при развертывании вам нужно потренироваться в части загрузки изображения с вашего Java-сервера на FTP-сервер.

Комментарии:

1. Эти файлы не являются частью развертывания, они создаются пользователями. Если я помещу их внутрь ресурса, есть вероятность потери данных при развертывании.

2. Я говорю о том, чтобы ничего не помещать в вашу папку assets, кроме статических ресурсов. Если пользователь загружает изображение, сохраните его где-нибудь, используя свой серверный сервер, и не пытайтесь получить доступ к этому файлу изображения непосредственно из вашего приложения angular, а используйте URL-адрес. вы можете использовать сервер для размещения этих изображений.

3. Что означает, загрузите изображения в папку на ftp-сервере. Это наилучшая практика.

4. Я сохраняю имя файла, потому что URL-адрес динамический, и ваша идея имеет смысл, у меня просто возникают трудности с вычислением URL-адреса. Java-приложение имеет localhost: 8080, но файлы также находятся за пределами java-приложения.

5. В принципе, нет никаких трудностей в реализации этого. После сохранения файлов в папке вы можете разместить эту папку на веб-сервере Chrome. Таким образом, URL будет localhost://{your_assigned_port}/filename. Итак, да, вы можете сохранить имя файла