[PHP] Stocker des images en base ??

Stocker des images en base ?? [PHP] - Programmation

Marsh Posté le 24-01-2002 à 17:53:19    

Je suis en train de coder 1 site avec des catégories et des produits qui ont chacun des images associées.
Je me demandais si c'était 1 bonne solution de stocker les images en base plutot que dans l'arborescence du site.
 
Quels sont les avantages ou inconvénients de cette solution ??
(sachant que la base est mysql)

Reply

Marsh Posté le 24-01-2002 à 17:53:19   

Reply

Marsh Posté le 24-01-2002 à 18:04:34    

Inconvéniants qui me viennent comme çà :
 

  • Impossible de mettre à jour une image par FTP/SMB.
  • Beaucoup de temps machine perdu pour rien à générer les images à partir de la version stokée en base.


Avantages :
 

  • Apprendre à le faire si on sait pas.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 24-01-2002 à 18:12:10    

Mara's dad a écrit a écrit :

Inconvéniants qui me viennent comme çà :
 

  • Impossible de mettre à jour une image par FTP/SMB.
  • Beaucoup de temps machine perdu pour rien à générer les images à partir de la version stokée en base.

 




 
Le 1, c'est pas 1 problème dans mon cas
Le 2 faut voir.
 
Le gros avantage que je voyais dans cette solution, c'est l'aspect sécurité : pas besoin de répertoire accessible en écriture pour apache.
 
D'autres avis ??

Reply

Marsh Posté le 24-01-2002 à 19:05:37    

Franchement de quelle sécurité tu parles ? Tu veux protéger une image ? :lol:
 
Allez repettez après moi :
 
"Une base c pas une poubelle, les images à côté et elle sera plus belle !"
 
C pas dur de mettre un cht'i champ texte et l'image à côté ;)


---------------
A+++ Bruce - http://www.bheller.com
Reply

Marsh Posté le 24-01-2002 à 20:23:53    

Bruce a écrit a écrit :

Franchement de quelle sécurité tu parles ? Tu veux protéger une image ? :lol:




 
Rien à voir c'est pour la sécurité du serveur.
Pour uploader des images sur 1 site, il faut rendre 1 rep accessible en écriture à apache.

Reply

Marsh Posté le 24-01-2002 à 20:40:53    

franchement pour des images RIEN NE VAUT coldfusion, essaye le, il est tres simple meme pour les debutants et sa prog est fantastique pour les BD gigantesques ..

Reply

Marsh Posté le 25-01-2002 à 00:24:46    

potiron a écrit a écrit :

franchement pour des images RIEN NE VAUT coldfusion, essaye le, il est tres simple meme pour les debutants et sa prog est fantastique pour les BD gigantesques ..  




c gratuit ça ?

Reply

Marsh Posté le 25-01-2002 à 01:52:57    

:heink: ............. :??: ............. :sarcastic: ............. :D

Reply

Marsh Posté le 25-01-2002 à 03:24:53    

N'importe quoi...
 
On ne met pas d'images dans une BDD c tout ! :D Quel que soit le language de script derrière ! ça change rien !


---------------
A+++ Bruce - http://www.bheller.com
Reply

Marsh Posté le 25-01-2002 à 12:07:06    

Bruce a écrit a écrit :

N'importe quoi...
On ne met pas d'images dans une BDD c tout ! :D Quel que soit le language de script derrière ! ça change rien !  




 
Attention, bruce !
Faut faire gaffe à ce que tu dis. C'est pas parce-que tu ne sais pas faire que ce n'est pas possible !
 
Une images, ce n'est après tout qu'une suite d'octets (Comme n'importe quel INFORMATION digitalisé). Donc tu peux enregistrer cette information dans un champ BLOB.
 
Exemple ici : http://dev.nexen.net/docs/mysql/an [...] ctions.php avec la fonction load_file() qui lit un fichier pour mettre sont contenu dans un champ BLOB!
 
Dans l'autre sens ici :
http://dev.nexen.net/docs/mysql/an [...] SELECT.php
Voir DUMPFILE.
SELECT IMG_BLOB INTO DUMPFILE "/tmp/photo1.jpg" WHERE ID_PHOTO=1;
 
Conclusion, faut faire gaffe avec ses certitudes !
 
PS: Heu désolé,bruce, j'ai mal lu ! :(  
 :( J'ai cru lire que tu disait que c'était pas possible, alors que tu dis juste que c'est pas bien de le faire.
Je laisse mon post tout de même, pour info.

 

[edtdd]--Message édité par Mara's dad--[/edtdd]


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 25-01-2002 à 12:07:06   

Reply

Marsh Posté le 25-01-2002 à 12:07:51    

ah bon ???
 
tu stockes bien du texte pourtant ... et une image c'est quoi ??
ben oui, du texte :D  
coldfusion est prevu pour sauf erreur et faut bien penser que dans certain cas tu peux pas stocker de fichiers donc mettre les images dans une base peut etre tres pratique ...

Reply

Marsh Posté le 25-01-2002 à 12:32:50    

Bruce a écrit a écrit :

N'importe quoi...
 
On ne met pas d'images dans une BDD c tout ! :D Quel que soit le language de script derrière ! ça change rien !  




 
Mouaip,j'ai déja bossé sur une appli de gestion documentaire ou des .tif et des .pdf etaient stokées ds 1 base oracle.
Donc ça se fait parfois.

Reply

Marsh Posté le 25-01-2002 à 12:53:20    

Mara's dad : je sais bien que c faisable mais c vraiment pas bien de le faire :)
 
potiron : t'as fini de dire des conneries svp ? Une image c pas du texte, c du binnaire, raté ! Certe tu peut l'encoder en texte (genre Base64) mais bon... Quand au language de script, put'1 mais tu réfléchi avant d'écrire ? On s'en tappe ! Toutes les bases de données savent stocker des données binnaires, et tous les languages de scripts savent les sortirs (see l'exemple php de Mara's dad). Cold fusion as certe quelques fonctions "pré-cablé" comme on dit mais rien de révolutionnaire...
 
bobdupont : oui, il y as des tas de BDD ou il y as des images, mais dans un point de vue de développement Internet (et dans un cas plus général... partout !) il est mieux de ne PAS mettre les images dans la base et d'y placer uniquement le chemin relatif à ces images. Cela accroit énormément les temps de réponses et allège la base...
Si on voulais on pourrais mettre des MP3, voire même des DivX dans une base de donnée mais faut pas le faire ! Je vous laisse penser à tout ça ;)


---------------
A+++ Bruce - http://www.bheller.com
Reply

Marsh Posté le 25-01-2002 à 14:20:06    

bruce : encore une fois tu parles avant de reflechir -> fait l'inverse tu verras que ca fonctionne mieux  :lol:  
 
coldfusion a toute une partie pour stocker des images+utiliser+... et a ma connaissance c'est le seul qui propose ces fonctionnalités a part les exemples de mara ..
 
et oui, si tu stockes ton image comme du texte et que tu ecris ce texte dans un fichier avec la bonne extension tu retrouves ton image -> tu as jamais eu la curiosité d'ouvrir une image avec un editeur de texte ?
c'est bien pour ca que je dis que c'est que du texte !

Reply

Marsh Posté le 25-01-2002 à 17:29:18    

potiron a écrit a écrit :

bruce : encore une fois tu parles avant de reflechir -> fait l'inverse tu verras que ca fonctionne mieux  :lol:  
 
coldfusion a toute une partie pour stocker des images+utiliser+... et a ma connaissance c'est le seul qui propose ces fonctionnalités a part les exemples de mara ..
 
et oui, si tu stockes ton image comme du texte et que tu ecris ce texte dans un fichier avec la bonne extension tu retrouves ton image -> tu as jamais eu la curiosité d'ouvrir une image avec un editeur de texte ?
c'est bien pour ca que je dis que c'est que du texte !  




 
 :lol:  :lol:  :lol:  
 
On as un bo winner là ! :D
 
C ça continue d'éditer tes images sous Notepad :D


---------------
A+++ Bruce - http://www.bheller.com
Reply

Marsh Posté le 25-01-2002 à 17:47:20    

Bon, allez fait un test toi aussi, prend n'importe quel soft de dessins, ok. Crée une image de 50*50 pixels (pas trop gros sinon ça vas être long après :)). Dessine n'importe quoi dessus on s'en tappe.
Sauve cette image en BMP (format non compressé).
Ouvre le notepad, charge y l'image comme tu le dit si bien... Sauve dans un fichier texte avec un autre nom (un .txt ok ;)). Enfin, change l'extension de ton .txt en .bmp et ouvre ton image dans n'importe quel logiciel de dessins. Si il te charge l'image tu m'apelle hein ? :D :hello:  
(PSP me fait le message "This is not a valid BMP/DIB/RLE file"... Et c NORMAL !)
 
(allez si t gentil je t'expliquerais pkoi ça marche pas hein ;)).


---------------
A+++ Bruce - http://www.bheller.com
Reply

Marsh Posté le 25-01-2002 à 18:06:54    

bruce : .......  :sarcastic:  
 
tu utilises souvent du BMP sur le net pour mettre des images sur ton site ou pour U/L des images a stocker quelque part ou ...  
si c'est oui, dis moi ou est ton site je vais essayer de l'eviter avec ma petite connec sinon  :sleep:  
 
bon de toute facon c'est pas trop la question ici :
les formats auxquels je pensais sont gif et jpg, c'est avec eux que j'ai fait mes test mais je suis presque certain que ce sont pas les seuls ...

Reply

Marsh Posté le 25-01-2002 à 18:08:03    

une base mysql c pas une poobelle .. vo mieu créér un rep et y fotre les img ...

Reply

Marsh Posté le 25-01-2002 à 18:09:28    

potiron a écrit a écrit :

bruce : .......  :sarcastic:  
 
tu utilises souvent du BMP sur le net pour mettre des images sur ton site ou pour U/L des images a stocker quelque part ou ...  
si c'est oui, dis moi ou est ton site je vais essayer de l'eviter avec ma petite connec sinon  :sleep:  
 
bon de toute facon c'est pas trop la question ici :
les formats auxquels je pensais sont gif et jpg, c'est avec eux que j'ai fait mes test mais je suis presque certain que ce sont pas les seuls ...  




 
Ecoute re-fait test test ça ne peut pas marcher ! Tu confond le binnaire et l'ASCII ! Pfff


---------------
A+++ Bruce - http://www.bheller.com
Reply

Marsh Posté le 25-01-2002 à 18:12:13    

je viens de faire ton test :
 
1-j'ouvre un .bmp dans editplus
2-je le sauve en .txt
3-j'ouvre le .txt et je le sauve en .bmp
4-je le lance et j'ai bien l'image ...  :??:  
 
donc si tu me dis que ca marche pas sur ton PC et que ce n'est pas censé marcher sur le mien je me demande ou est l'erreur ..  :??:

Reply

Marsh Posté le 25-01-2002 à 18:12:45    

Re-fait exactement le test que je t'ai donné tout à l'heure, que ce soit le PNG, GIF, JPEG ou autre ça marche pas ! Et encore une fois c normal :lol:


---------------
A+++ Bruce - http://www.bheller.com
Reply

Marsh Posté le 25-01-2002 à 18:13:09    

potiron a écrit a écrit :

je viens de faire ton test :
 
1-j'ouvre un .bmp dans editplus
2-je le sauve en .txt
3-j'ouvre le .txt et je le sauve en .bmp
4-je le lance et j'ai bien l'image ...  :??:  
 
donc si tu me dis que ca marche pas sur ton PC et que ce n'est pas censé marcher sur le mien je me demande ou est l'erreur ..  :??:  




 
 :lol:


---------------
A+++ Bruce - http://www.bheller.com
Reply

Marsh Posté le 25-01-2002 à 23:06:29    

J'allais dire un truc là à propos de ASCCI, texte, binnaire, éditeurs de texte... mais finalement non !
C'est vraiement trop con comme discution.
 
En revanche, pour ce qui est des images dans une base, faut aussi voir le coté pratique de ce qu'on veux faire.
 
Tu ne veux pas mettre tes images dans des fichiers, mais dans une base.
Pourquoi pas, j'ai montré que c'est possible avec MySql.
Cependant, tes images, elle sont bien destinées à être vue sur le net à un moment ou un autre non ?
Et il me semble qu'en HTML, y'a pas tellement d'autre possibilités que de faire un truc du genre :
<IMG SRC="ressource_internet">
où ressource_internet est un fichier (!) pas un champs de base de donné. Donc il faut bien sortir l'image de la base pour la mettre dans un fichier à un moment donné ( comme dans mon exemple ).
Et c'est là que l'intérès de la BDD pour stocker des images disparait.
Dans ce cardre d'utilisation bien sûr ! Faut pas généraliser.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 27-01-2002 à 13:37:57    

Mara's dad a écrit a écrit :

J'allais dire un truc là à propos de ASCCI, texte, binnaire, éditeurs de texte... mais finalement non !
C'est vraiement trop con comme discution.
 
En revanche, pour ce qui est des images dans une base, faut aussi voir le coté pratique de ce qu'on veux faire.
 
Tu ne veux pas mettre tes images dans des fichiers, mais dans une base.
Pourquoi pas, j'ai montré que c'est possible avec MySql.
Cependant, tes images, elle sont bien destinées à être vue sur le net à un moment ou un autre non ?
Et il me semble qu'en HTML, y'a pas tellement d'autre possibilités que de faire un truc du genre :
<IMG SRC="ressource_internet">
où ressource_internet est un fichier (!) pas un champs de base de donné. Donc il faut bien sortir l'image de la base pour la mettre dans un fichier à un moment donné ( comme dans mon exemple ).
Et c'est là que l'intérès de la BDD pour stocker des images disparait.
Dans ce cardre d'utilisation bien sûr ! Faut pas généraliser.  




 
Ah ouais mais ça c pas 1 pb du tout tu peux faire comme ça :
<IMG SRC="getimage.php?id=15546"> ou getimage.php est un script qui récupère l'image dans la base et l'envoie au navigateur.
 
Ca permet par exemple de vérifier que ton image n'est pas linkée d'un site autre que le tien.

Reply

Marsh Posté le 27-01-2002 à 17:31:35    

bobdupont a écrit a écrit :

 
 
Ah ouais mais ça c pas 1 pb du tout tu peux faire comme ça :
<IMG SRC="getimage.php?id=15546"> ou getimage.php est un script qui récupère l'image dans la base et l'envoie au navigateur.
 
Ca permet par exemple de vérifier que ton image n'est pas linkée d'un site autre que le tien.  




C'est sûr qu'on peut, mais c'est une vraie catastrophe point de vue pref par rapport à sortir le fichier. C'est pour çà que j'ai pas cité cette solution.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed