Moja obecna realizacja wygląda następująco:
Przechowuję obraz w danych binarnych w bazie danych. Następnie ładuję go i wysyłam jako dane Base64 w odpowiedzi HTTP.
API:
@Lob
@Column(length = 16777215)
private byte[] image;
Następnie załaduj go w interfejsie użytkownika <img ng-src="data:image/png;base64, {{product.image}}">
W przypadku niektórych obrazów odpowiedź HTTP jest ogromna. Działa dobrze w przypadku kilku obrazów, ale powiedzmy, że chcę wyświetlić 100 obrazów.
Czy to właściwy sposób, aby zrobić to szybko i dobrze?
2 odpowiedzi
Możesz po prostu spróbować przekazać adres URL do interfejsu API w węźle obrazu. Na przykład:
<img ng-src="https://api.myhost.com/product/5646/image" />
W większości przypadków powinno działać dobrze.
Nie wierzę, że można to obejść, po prostu przenosisz rozmiar obrazu do HTML.
Odradzałbym przechowywanie obrazów w bazie danych, właściwym sposobem byłoby przechowywanie obrazów w systemie plików i przechowywanie adresu URL w bazie danych.
To powinno sprawić, że odpowiedź HTTP będzie niewielka, a kod HTML będzie się szybko ładował.
Podobne pytania
Nowe pytania
java
Java to język programowania wysokiego poziomu. Użyj tego tagu, jeśli masz problemy z używaniem lub zrozumieniem samego języka. Ten tag jest rzadko używany samodzielnie i jest najczęściej używany w połączeniu z [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] i [maven].