anwaarber
Messages postés10Date d'inscriptionvendredi 17 décembre 2004StatutMembreDernière intervention 9 octobre 2005
-
24 avril 2005 à 01:12
rexavry
Messages postés2Date d'inscriptiondimanche 23 novembre 2008StatutMembreDernière intervention30 septembre 2009
-
30 sept. 2009 à 13:02
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
rexavry
Messages postés2Date d'inscriptiondimanche 23 novembre 2008StatutMembreDernière intervention30 septembre 2009 30 sept. 2009 à 13:02
slt altavista je viens d'executer ton code sur mon projet pour afficher une image stocker
dans la base de donnée dont le type de champ est blob
mrc si tu peux le corrigé
cs_Astalavista
Messages postés192Date d'inscriptionlundi 24 décembre 2001StatutMembreDernière intervention 3 février 2010 29 mai 2008 à 17:25
Dans le principe, pour l'afficher directement, il suffit de fair le bonne header avec le type image et afficher :
header("Content-type: image/jpeg");
$connexion=mysql_connect("localhost","","");
mysql_select_db("db",$connexion);
$requete="select data_img from test where num_img=1";
$resultat=mysql_query($requete,$connexion);
mysql_close($connexion);
echo mysql_result($resultat, 0);
die(0);
kiki9741
Messages postés9Date d'inscriptionlundi 10 juillet 2006StatutMembreDernière intervention 4 juillet 2007 29 févr. 2008 à 14:58
Ne pas oublier la balise alt="" conformément au W3C
mehdi7604
Messages postés118Date d'inscriptionjeudi 11 mai 2006StatutMembreDernière intervention 6 mars 2015 10 sept. 2007 à 15:54
Vous copiez tous le meme code, pas de nouveau , je cherche à afficher l'mage directement sans créer de fichier et sans utiliser herader(...) , qqun à une idée?
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 24 mai 2007 à 08:36
abdelkarimci, apprend le php avant de dire des sottises... pour qqn qui laisse ses fichiers accessibles a tous, alors la bdd n'est pas forcement la meilleur solution, ca fait des pertes de performances, et n'apporte que des stats precises sur les visites, et cote securite, ca facilite les injections sql alors que si l'image s'etait trouvee distante, ca aurait fait une requette de moins donc une faille de moins... voila donc deux possibilites, et pas une seule... et voila un cas ou l'autre possibilite est plus securisee que celle presentee ici...
l'avantage, c'est plutot cote clusters et cote sauvegardes...
abdelkarimci
Messages postés1Date d'inscriptionmardi 30 mai 2006StatutMembreDernière intervention24 mai 2007 24 mai 2007 à 07:53
C'est excelent 10/10
Pour quelq'un qui stocke les photos dans la base de données c'est la meilleure solution
plutôt c'est la seule
les photos (images) ou tout autre type de fichier sont plus sécurisés dans la base que en tant que fichier dans un répertoire
la recherche et le classement sont tout à fait simple et fiable
la deuxième partie et bien plus utile que la première
Dans mon cas, une appli VB stocke les fichier dans la base MySQL et le site web permet d'afficher les images.
Merci beaucoup pour cette source très utile
BlastMan
Messages postés1Date d'inscriptiondimanche 18 avril 2004StatutMembreDernière intervention26 mars 2007 26 mars 2007 à 16:57
Je trouve ce code absolument désastreux à exécuter sur un serveur, surtout si il a un nombre de clients simultanés important.
En effet, quand un client demande à voir une image stockée dans la base, celle-ci est écrite sur sur le disque puis envoyée au client, elle fait donc déjà trois requêtes (en extrapolant) d'accès disque : une sur le SGBDR (MySQL par ex), une autre pour écrire le fichier et une troisième pour le lire.
Quant à faire un fichier temporaire qui ne l'est pas réellement comme l'a dit Vinyjones, ça pose des problèmes d'exclusion mutuelle des clients qui lisent le même NOM de fichier mais pas forcément le même contenu.
La solution est de lire dans la base comme sur le tuto, de faire un
echo $tableau;
en n'oubliant pas de mettre avant un header("Content-type: image/jpeg");
et tout marche ;)
vinyjones
Messages postés3Date d'inscriptionvendredi 20 février 2004StatutMembreDernière intervention 4 mai 2008 2 mars 2007 à 19:17
Bonjour,
La première partie rien à redire.
Par contre, je ne vois pas l'intérêt de la seconde:
Puisque tu écris l'image sur le serveur.
Donc si un client A requière une page qui appelle ton script pour une image(1)
il reçoit dans le code html
puis il va télécharge l'image avec ce lien
sauf qu'entre temps un client B a fait une requête qui appelle ton script pour une image (2)
conséquence: les deux clients téléchargent l'image(2) (dommage pour A)
On pourrait donne un nom pour chaque image mais quel est l'intérêt de réécrire le ficher image depuis la base de données à chaque requête?
Alors autant ne référencer dans la base que les liens vers les images et les mettre sur le serveur
Avec un serveur Web vos scriptes peuvent être appelés à tout moment et simultanément pensez-y.
lolobedo
Messages postés1Date d'inscriptionlundi 27 novembre 2000StatutMembreDernière intervention29 novembre 2005 29 nov. 2005 à 01:06
T'as pas honte à la fin d'écrire "Bonne chanse", internet et l'informatique ne signent pas la fin du francais correct SVP
anwaarber
Messages postés10Date d'inscriptionvendredi 17 décembre 2004StatutMembreDernière intervention 9 octobre 2005 25 avril 2005 à 22:05
salut a vous tous.
g bien aimer vos suggestion é voila g tou rectifier é g mm coriger le code d'affichage é ca marche tros bien. mnt je v faire une boucle pour afficher un ensemble de photo puis de lé lire aprés c cool de rechercher une information qui nous tracasse mais c plus cool si on pose aussi ce kon a trouvé.
merci pour tous ceux qui pense de la mm façons :).
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 25 avril 2005 à 11:27
Hello,
et il faut aussi preciser que cette methode, mettre une image dans un champ de type blob dans une base, est a n'utiliser que si vraiment on a une bonne raison de proceder ainsi.
C'est tres gourmand...trop!
La meilleure methode est toujours d'enregistrer les images sur le serveur, et de ne stocker que les url pointant vers ces images.
Mingain
Messages postés44Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention24 février 2006 24 avril 2005 à 18:01
Voici le lien vers une étude sur la rapidité/optimisation du code PHP :
ça peut servir sur de trés gros sites et je trouve ça super !
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 24 avril 2005 à 15:32
normal qu'il ne te l'afiche pas...
faut que tu enregistre ta variable dans un fichier et que tu mette :
touch($filename);
$f=fopen($filename, 'w');
fputs($f,$row['data_img']);
fclose($f);
echo '';
ou alors tu mets une entête à ton fichier et tu vire tout le html qu'il y a avant...
les manipulations d'images peuvent êtres très longues, alors utilise les ' à la place des "...
utlises aussi les <?php à la place des <?
Mingain
Messages postés44Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention24 février 2006 24 avril 2005 à 14:45
Pas mal du tout sauf que heuu ... T'execute pas $result ^^
Je me trompe peut-être :-/ Sinon, merci bien pour ce bout de code que je vais tenter d'adapter à mon site !
samueldr
Messages postés121Date d'inscriptionsamedi 23 août 2003StatutMembreDernière intervention 3 juillet 2005 24 avril 2005 à 06:49
J'ai une solution à ton problème...
j'utilise cette méthode depuis un petit bout...
bien sûr, ce n'est que la base, à toi d'ajouter le code d'upload des images !
http://www.spoono.com/php/tutorials/tutorial.php?id=42 (bien sûr, il faut être à l'aise avec l'anglais...)
(ce site contient bien d'autre tutoriels, pas juste en PHP, allez voir !!!)
En espèrant avoir pu t'aider
SamuelDr
anwaarber
Messages postés10Date d'inscriptionvendredi 17 décembre 2004StatutMembreDernière intervention 9 octobre 2005 24 avril 2005 à 01:12
re,
apres la verification de mon code il ny a que la partie d'ajout dans la DB qui marche sinon pour l'affichage je vous di pas!!!!!!!!!
il n y a que des chifres et des numero non significatifs.
mais avec MySQL front je peux voir la photo introduite ou est le probleme je c pas a vous de me dir ce qu'il faut faire ok. merci a vous.
30 sept. 2009 à 13:02
dans la base de donnée dont le type de champ est blob
mrc si tu peux le corrigé
29 mai 2008 à 17:25
header("Content-type: image/jpeg");
$connexion=mysql_connect("localhost","","");
mysql_select_db("db",$connexion);
$requete="select data_img from test where num_img=1";
$resultat=mysql_query($requete,$connexion);
mysql_close($connexion);
echo mysql_result($resultat, 0);
die(0);
29 févr. 2008 à 14:58
10 sept. 2007 à 15:54
24 mai 2007 à 08:36
l'avantage, c'est plutot cote clusters et cote sauvegardes...
24 mai 2007 à 07:53
Pour quelq'un qui stocke les photos dans la base de données c'est la meilleure solution
plutôt c'est la seule
les photos (images) ou tout autre type de fichier sont plus sécurisés dans la base que en tant que fichier dans un répertoire
la recherche et le classement sont tout à fait simple et fiable
la deuxième partie et bien plus utile que la première
Dans mon cas, une appli VB stocke les fichier dans la base MySQL et le site web permet d'afficher les images.
Merci beaucoup pour cette source très utile
26 mars 2007 à 16:57
En effet, quand un client demande à voir une image stockée dans la base, celle-ci est écrite sur sur le disque puis envoyée au client, elle fait donc déjà trois requêtes (en extrapolant) d'accès disque : une sur le SGBDR (MySQL par ex), une autre pour écrire le fichier et une troisième pour le lire.
Quant à faire un fichier temporaire qui ne l'est pas réellement comme l'a dit Vinyjones, ça pose des problèmes d'exclusion mutuelle des clients qui lisent le même NOM de fichier mais pas forcément le même contenu.
La solution est de lire dans la base comme sur le tuto, de faire un
echo $tableau;
en n'oubliant pas de mettre avant un header("Content-type: image/jpeg");
et tout marche ;)
2 mars 2007 à 19:17
La première partie rien à redire.
Par contre, je ne vois pas l'intérêt de la seconde:
Puisque tu écris l'image sur le serveur.
Donc si un client A requière une page qui appelle ton script pour une image(1)
il reçoit dans le code html
puis il va télécharge l'image avec ce lien
sauf qu'entre temps un client B a fait une requête qui appelle ton script pour une image (2)
conséquence: les deux clients téléchargent l'image(2) (dommage pour A)
On pourrait donne un nom pour chaque image mais quel est l'intérêt de réécrire le ficher image depuis la base de données à chaque requête?
Alors autant ne référencer dans la base que les liens vers les images et les mettre sur le serveur
Avec un serveur Web vos scriptes peuvent être appelés à tout moment et simultanément pensez-y.
29 nov. 2005 à 01:06
25 avril 2005 à 22:05
g bien aimer vos suggestion é voila g tou rectifier é g mm coriger le code d'affichage é ca marche tros bien. mnt je v faire une boucle pour afficher un ensemble de photo puis de lé lire aprés c cool de rechercher une information qui nous tracasse mais c plus cool si on pose aussi ce kon a trouvé.
merci pour tous ceux qui pense de la mm façons :).
25 avril 2005 à 11:27
et il faut aussi preciser que cette methode, mettre une image dans un champ de type blob dans une base, est a n'utiliser que si vraiment on a une bonne raison de proceder ainsi.
C'est tres gourmand...trop!
La meilleure methode est toujours d'enregistrer les images sur le serveur, et de ne stocker que les url pointant vers ces images.
24 avril 2005 à 18:01
http://www.vulgarisation-informatique.com/optimiser-php.php
ça peut servir sur de trés gros sites et je trouve ça super !
24 avril 2005 à 15:32
faut que tu enregistre ta variable dans un fichier et que tu mette :
touch($filename);
$f=fopen($filename, 'w');
fputs($f,$row['data_img']);
fclose($f);
echo '';
ou alors tu mets une entête à ton fichier et tu vire tout le html qu'il y a avant...
les manipulations d'images peuvent êtres très longues, alors utilise les ' à la place des "...
utlises aussi les <?php à la place des <?
24 avril 2005 à 14:45
fais un :
if($result){
echo"Requete effectuée";
}
else echo mysql_error();
Je me trompe peut-être :-/ Sinon, merci bien pour ce bout de code que je vais tenter d'adapter à mon site !
24 avril 2005 à 06:49
j'utilise cette méthode depuis un petit bout...
bien sûr, ce n'est que la base, à toi d'ajouter le code d'upload des images !
http://www.spoono.com/php/tutorials/tutorial.php?id=42
(bien sûr, il faut être à l'aise avec l'anglais...)
(ce site contient bien d'autre tutoriels, pas juste en PHP, allez voir !!!)
En espèrant avoir pu t'aider
SamuelDr
24 avril 2005 à 01:12
apres la verification de mon code il ny a que la partie d'ajout dans la DB qui marche sinon pour l'affichage je vous di pas!!!!!!!!!
il n y a que des chifres et des numero non significatifs.
mais avec MySQL front je peux voir la photo introduite ou est le probleme je c pas a vous de me dir ce qu'il faut faire ok. merci a vous.