Lire beaucoup d'images BLOB en HTML - SQL/NoSQL - Programmation
Marsh Posté le 09-09-2019 à 15:34:02
C'est clairement pas une bonne idée, surtout si tu affiches plusieurs jaquette par page.
Le boulot d'un serveur web à la base c'est de servir des fichiers, et la plupart du temps, Apache (ou Nginx) font ça très bien.
La pour chaque image mentionné dans ton code html, le navigateur vas faire une requête au serveur qui, n'ayant pas d'image à afficher vas appeler un script qui vas charger un blob depuis la base de donnée, et y ajouter un entête et renvoyer (enfin) une image.
En terme de perf, c'est complétement nul, les rares fois ou on vas utiliser ce genre de technique, c'est pour des problèmes de sécurisation des données ou de statistiques (et encore il existe d'autres moyen de le faire).
Marsh Posté le 09-09-2019 à 15:38:13
Merci de ta réponse. Oui j'ai pu le constater que c'était nul mais je ne sais pas quelle méthode utiliser pour éviter ça ... Stocker les images dans un dossier img où le code html ira directement chercher toutes les jaquettes ?
Marsh Posté le 09-09-2019 à 16:21:01
Pacque là, à l'heure actuelle ton fichier html contient le code de toutes tes images ?!
Du coup pas de cache possible et la page html de 10 mo ?
Tu utilises quoi comme technologie server pour récupérer ton contenu html et générer ton html : php, asp, autre ?
Sinon, pourquoi tu n'utilises pas un truc tout fait plutôt que ré-inventer la roue (tu as peut être envie d'apprendre, c'est louable ^^) ?
Il existe surement des CMS libre que tu pourrais héberger, voir même des solutions en ligne...
Marsh Posté le 09-09-2019 à 16:51:59
J'utilise AngularJS pour ma page web qui récupère la liste des films avec les images via une requête AJAX. Côté Serveur, j'utilise du PHP.
Oui c'est pour apprendre à réaliser un site Web.
Tu as des exemples de CMS qui pourraient me servir ? Ainsi je regarderais comment ils font
Marsh Posté le 09-09-2019 à 17:03:22
Nan mais si c'est pour apprendre, tu vas galérer à renter dans le code d'un CMS bien foutu...
Pour le moment regarde à enregistrer tes images dans un dossier puis à les ré-afficher, vu que ce seront de vrai fichiers avec une adresse physique, elle pourront être mise en cache et tu gagneras en performance.
Tu pourrais donner un extrait de ce que te renvoie ton ajax (pour un film par exemple), je n'ai toujours pas compris a quoi ressemblait la partie dédié à la jaquette (url distante ou contenu du ficher en base64) ?
Marsh Posté le 09-09-2019 à 19:00:55
Voici le code pour charger la jaquette d'un film :
Fct côté client pour demander une image au serveur en AngularJS:
Code :
|
Fct côté serveur en PHP:
Code :
|
Je viens de remarquer avec tout ça qu'il y a bcp de conversion là
Tu connais un bon CMS quand même ? j'aimerais aussi tester cette solution
Marsh Posté le 10-09-2019 à 10:27:51
Tu devrais faire une moulinette en php qui pour toutes les images de ta base de donnée crée un fichier (avec pourquoi pas l'id comme identifiant unique) via ce genre de technique :
Code :
|
source : https://askcodez.com/php-convertir- [...] image.html
(GD et Imagick sont des bibliothèques pour travailler les images sur PHP, je crois que GD est quasiment tout le temps installé mais que Imagick est un peu mieux...
Une fois que tu auras tes fichiers dans ton dossier, ton Ajax pourra ne renvoyer que l'id_picture et ton code JS en déduira l'url de l'image à afficher (/image/jaquette/img_{ID_PICTURE}.jpg).
Pour les CMS, je bosses plutôt avec des appli portail, blog ou ecommerce, donc je ne saurais trop te conseiller, tu auras autant de chance que moi avec Google...
https://www.google.com/search?q=mov [...] +php+mysql
J'ai vu que y'avais aussi https://www.filmotech.fr/ qui permet d'exporter ce qu'on rentres via le logiciel en php/mysql.
Sinon y'a le mastodonte Wordpress qui aura surement des plugin pour gérer une médiathèque (ya des plugin pour tout sur Wordpress, faut juste vérifier qu'il sont à jour ^^).
https://fr.wordpress.org/plugins/tags/movie-database/
Bon courage !
Marsh Posté le 10-09-2019 à 13:41:22
Merci beaucoup pour tes réponses, ça va m'aider pour mon site !
Encore un grand merci
Marsh Posté le 09-09-2019 à 15:24:51
Bonjour,
Je développe un site web qui contient ma liste de films, jeux vidéo, ... Pour les jaquettes des films, je les enregistre dans une DB Mysql en format BLOB.
Le problème c'est que lorsque je lance ma page avec toute la liste des films, cela prend beaucoup de temps à charger ... Je pense que c'est à cause des images.
Pour récupérer les images de la DB, je les convertis de BLOB en base64 pour les lire en JS.
Donc je me demandai si c'était la bonne méthode pour lire beaucoup de fichiers image en DB ou si le mieux est de stocker les img dans un dossier ? Peut-être que ça ira plus vite ?
Comment font les sites hébergeur de vidéos avec beaucoup d'image ?
Merci d'avance pour votre aide