votre avis concernant la gestion des images [PHP, MySQL] - PHP - Programmation
Marsh Posté le 26-02-2003 à 20:20:15
Le mieux (et de loin), c'est de générer une miniature avec GD (incluse dans PHP).
Marsh Posté le 26-02-2003 à 20:42:45
la librairie gd c certainement ce qu'il y a de mieux pour la qualité des images
mais c beaucoup moins bien niveaux performance, ça prend beaucoup de ressources
Marsh Posté le 26-02-2003 à 21:08:52
Oui, mais c pas grave étant donné que les images ne sont générées qu'une seule fois
Marsh Posté le 26-02-2003 à 21:14:26
Citation : Le mieux (et de loin), c'est de générer une miniature avec GD (incluse dans PHP). |
C'est pas mieux d'avoir 2 versions de ton image ?
Je demande ca car y'a pas mal de sites qui font comme ca, doit bien y avoir une raison...
EDIT : en fait si tu pouvais expliquer pourquoi GD est la meilleure solution... je veux bien te croire mais si t'avais des arguments ce serait encore mieux
Marsh Posté le 26-02-2003 à 21:55:00
Hermes le Messager a écrit : Oui, mais c pas grave étant donné que les images ne sont générées qu'une seule fois |
ah bon, et pourquoi seraient-elles générées qu'une seule fois ?
impluse,
de toute façon gd c principalement utilisé pour générer des graphes, la meilleure solution pour toi serait en effet d'utiliser deux images
Marsh Posté le 26-02-2003 à 22:06:21
Citation : impluse, |
ok.
Et sinon vaut mieux stocker les images ds la BD (blob) ou alors tout mettre dans un rep ("images" par exemple) et stocker le nom du fichier ds la BD ou bien ne rien stocker du tt ds la BD ?
Marsh Posté le 26-02-2003 à 22:30:50
tout mettre dans un rep ("images" par exemple) et stocker le nom du fichier ds la BD ou bien ne rien stocker du tt ds la BD
Marsh Posté le 26-02-2003 à 23:03:45
Citation : tout mettre dans un rep ("images" par exemple) et stocker le nom du fichier ds la BD ou bien ne rien stocker du tt ds la BD |
Pourquoi ?
Je veux des arguments!
EDIT : non serieusement, j'aimerais bien connaitre les raisons (plus pratique etc...)...
Marsh Posté le 26-02-2003 à 23:28:12
je vais un peu poursuivre sur ce qui a été dit jusqu'à maintenant.
1. utiliser GD pour générer les miniatures 1 seule et unique fois est une bonne solution mais pas la solution optimale, loin de là. En effet, GD ne permet de créer des images de bonne qualité et cela consomme pas mal de ressources sur le serveur hébergeant le site pour une fonction qui n'est pas la sienne. Le mieux est de créer toi même les miniatures sur ton ordi perso et de les uploader sur ton site ensuite.
2. stocker les image directement dans la signature est une très mauvaise idée. En effet,à chaque fois qu'un visiteur voudra voir une page avec 20 miniatures, je te raconte pas la quantité d'infos qui doit circuler entre le serveur Web et le serveur MYSQL. Tu vas de plus te retrouver avec une base de données gigantesque et ça risque de ralentir l'ensemble des requêtes faites sur ta base de données. En contrepartie, stocker les images directement dans la base permet plus de sécurité : on te volera plus difficilement tes images si ton script est bien fait.
3. PhpWebGallery est une application permettant justement de gérer un site d'image. C'est tout automatisé et assez simple d'utilisation. Là c'était de la pub perso. Mais je gagne rien là-dessus, c'est du logiciel libre, sous GPL. http://www.z0rglub.com/phpwebgallery
Marsh Posté le 26-02-2003 à 23:47:51
captain_planet a écrit : |
Parce que si tu es intelligent, tu fais ce qu'on appelle une "banque d'image". C'est à dire que chaque fois que tu upload une image sur le site, sa miniature se crée à ce moment là une fois pour toute.
C'est ce système que j'utilise quand je fais une gallerie d'image.
Marsh Posté le 26-02-2003 à 23:52:52
z0rglub a écrit : En contrepartie, stocker les images directement dans la base permet plus de sécurité : on te volera plus difficilement tes images si ton script est bien fait. |
heu je vois pas pourquoi...
Marsh Posté le 26-02-2003 à 23:56:49
antp a écrit : |
parce que pour c'est plus simple pour un hacker de trouver des images dans un répertoire que dans une base de données (Si ton script PHP n'est pas une passoire bien sûr)
Marsh Posté le 27-02-2003 à 00:00:10
bhen y a tj une url (genre affimage.php?id=25453) qui va te rendre l'image, je vois pas ce que ça change entre un dossier et des url de ce genre, à moins que tu laisse ton dossier listable évidemment, mais bon y a peu de monde qui fait ça
Donc dans les deux cas à moins de connaître l'url de chaque image on sait pas les récupérer plus facilement dans un cas que dans l'autre...
Marsh Posté le 27-02-2003 à 00:14:39
antp a écrit : bhen y a tj une url (genre affimage.php?id=25453) qui va te rendre l'image, je vois pas ce que ça change entre un dossier et des url de ce genre, à moins que tu laisse ton dossier listable évidemment, mais bon y a peu de monde qui fait ça |
ouais, ok, ton point de vue se défend. De toute façon, je suis contre l'utilisation de la BD pour stocker les images. C'est pas fait pour. Maintenant parfois c'est utilisé (notamment pour de sites professionnels qui préfèrent tout stocker en base de données, comme j'ai pu le voir lors de mon dernier stage) pour permettre une migration plus simple : on ne migre que la base de données et pas des répertoires d'images etc.
Marsh Posté le 27-02-2003 à 00:45:14
Hermes le Messager a écrit : |
donc tu es intelligent c'est ça ?
Marsh Posté le 27-02-2003 à 01:04:19
captain_planet a écrit : |
En tout cas, plus que les gens incapables de comprendre le secnd degré d'une phrase
Marsh Posté le 27-02-2003 à 01:08:28
z0rglub a écrit : |
bah non il a raison c'est tout
et le coup de la migration plus simple ça me fait rigoler, tu le diras à ton maitre de stage de ma part
Marsh Posté le 27-02-2003 à 01:42:16
Hermes le Messager a écrit : |
le second degré, ça va loin ça !
expliques-moi donc le second degré de ta phrase
Marsh Posté le 27-02-2003 à 02:33:16
Ok merci pour ces details.
Bon ben je vais refaire mes tables moi...
Marsh Posté le 27-02-2003 à 02:46:16
Au fait Zorglub > elle a l'air sympa ton appli mais c'est pas ce que je recherche.
Je fais un site de vente online (projet fac). Si j'ai besoin de faire une galerie d'image un jour je saurais ou chercher.
Marsh Posté le 27-02-2003 à 08:35:10
the real moins moins a écrit : bah non il a raison c'est tout |
Ouais, ct ironique mon "ton point de vue se défend", j'aurai dû rajouter un smiley. Il a complètement raison en fait
Sinon, pour le coup de la migration dans la boîte où j'étais avant, j'étais aussi très étonné de voir qu'il préfèraient tout mettre en base de données, documents PDF, Microsoft Word ou images. Mais c'est certainement pas moi qui pouvait prendre la décision. Si ça avait été le cas, je n'aurai pas fait ainsi.
Marsh Posté le 27-02-2003 à 12:47:03
z0rglub a écrit : |
Marsh Posté le 27-02-2003 à 12:53:55
the real moins moins a écrit : |
Bin euh... pourquoi ? Si l'image est en base, tu peux la choper quelle que soit la config du serveur.
Alors que si tu stockes le chemin vers l'image du genre /home/images/img0456.jpg, lors d'une migration t'as intérêt à ce que les filesystems soient les mêmes si tu veux pas te taper la modif à la main pour toutes tes entrées.
De mon point de vue, les deux opinions se défendent
Marsh Posté le 27-02-2003 à 13:16:02
Taiche a écrit : |
ben si c'est fait de maniere pas trop trop conne, les chemins sont stockés en relatif alors bon, un tgz d'un rep et de ses sous-rep, c'est qd meme vite fait
faudrait quand meme migrer l'appli elle meme, alors
Marsh Posté le 27-02-2003 à 13:27:06
impulse a écrit : |
Marsh Posté le 27-02-2003 à 14:30:25
Taiche a écrit : |
Ben une bonne solution, c'est d'avoir un répertoire avec tes images + un script qui met à jour ta BDD en scannant les repertoires.
Si tu change de server, tu relance ta fonction de mise à jour et basta ! ( d'ailleurs c'est comme ça que je fais sur un site perso )
Marsh Posté le 27-02-2003 à 15:55:07
Moi je vote quand même pour la solution du script réduit les images et les rentre dans la base...
j'ai fait ca sur mon site, et ca marche très bien:
- Tu scanne le répertoire d'upload
- Tu récupère (via un form) les paramètres de tes images (catégorie, nom que tu veux leur donner, etc...)
- le script tourne une seule fois, te génère les miniatures, déplace les images dans les bons répertoires (cf nom_categorie), et intègre les liens aux images dans la BDD...
certes, ca charge le serveur pendant quelques secondes, mais après, plus de soucis... et ca evite aussi de se taper des miniaturisation sous toshop ou acdsee...
voila.
Marsh Posté le 27-02-2003 à 16:45:05
Citation : certes, ca charge le serveur pendant quelques secondes, mais après, plus de soucis... et ca evite aussi de se taper des miniaturisation sous toshop ou acdsee... |
Ouais enfin y'a des outils en ligne de commande pour faire des miniaturisations facilement et rapidement.
C'est ce que je vais utiliser, apres je mets toutes mes images ds un rep avec productId_s.jpg (pour les petites) et productId_m.jpg (pour les moyennes) et basta, je stocke rien ds la BD.
Merci pour vos remarques.
Marsh Posté le 27-02-2003 à 16:47:17
impulse a écrit :
|
pense quand meme a un mecanisme pour verifier que toutes tes images sont bien là
(du genre un petit script qui boucle sur les product_id que tu as en base et qui verifie que les images correspondantes existent, etc...)
Marsh Posté le 26-02-2003 à 19:17:05
Voila c'est tres simple, j'ai une appli de vente online avec des produits et une image associee a chaque produit. Je voudrais afficher une version reduite de cette image lorsque l'utilisateur demande la liste des produits dispo. Pour l'instant je stocke mes images ds la BD, une seule image de taille moyenne, et j'utilise l'attribut width du tag img pour la retrecir. Ca marche comme ca mais je me demande si c'est la meilleure solution (la qualite de l'image reduite est pas geniale et les images a charger sont plus lourdes). En fait je voudrais savoir ce qu'il vaut mieux faire dans ce cas :
- stocker 2 images, 2 tailles differentes
- stocker 1 image et faire comme je fais
- autre idee ?
EDIT : au fait : c'est une bonne idee de stocker les images ds la BD ?
Message édité par impulse le 26-02-2003 à 19:17:56