Enregistrer et récuperer une image depuis la base de donnée

imasho -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,
Je travaille sur une application en JavaEE, avec JPA/ Hibernate , Spring et JsF ,
j'ai besoin d'enregistrer des images dans la base de données puis les afficher,
J'ai trouvé des solutions mais en enregistrant l'image directement dans la base de données (Type Blob), mais je trouve que c'est très coûteux en terme d'espaces mémoire et de temps de réponse de la base de données.
Pour cela j'aimerais savoir comment je pourrai enregistrer simplement le chemin d'accès à la base de données et d'afficher l'image depuis le chemin indiqué dans la BDD.

Merci bien à vous :)
A voir également:

1 réponse

KX Messages postés 19031 Statut Modérateur 3 020
 
Bonjour,

Admettons que tu ais un serveur de fichiers spécifique à ton application, accessible depuis ton serveur, par exemple /home/monAppli/ressources

Tu peux y mettre ton fichier /home/monAppli/ressources/images/img1.jpg

Dans ton serveur Java tu stockes (dans un fichier properties par exemple) la racine des ressources c'est à dire /home/monAppli/ressources/

Remarque : si tu gères plusieurs environnements, production et hors-production par exemple, cette valeur pourrait être différente.

Puis dans ta base de données, tu stockes juste le chemin d'accès entre la racine et le fichier que tu veux accéder, par exemple images/img1.jpg

Quand tu accèdes à l'image tu as juste à faire la concaténation des deux pour récupérer le fichier au bon endroit.
0