Pourquoi pas tout simplement :
sinon $img1 c'est quoi ?Code:
1
2 '$bienprix','".addslashes($img1)."', '$vid1',
Version imprimable
Pourquoi pas tout simplement :
sinon $img1 c'est quoi ?Code:
1
2 '$bienprix','".addslashes($img1)."', '$vid1',
$img1 c est :
et $bienimage c est:Code:$img1 = file_get_contents ($_FILES['bienimage']['tmp_name']);
apparamment ca marche si je fais de ta facon en entourant $img1 de 'Code:$bienimage = $_FILES['bienimage'];
j ai dans mon champ blob un contenu de 5 octets.
je vais vérifier maintenant si j arrive a l afficher!
j ai fais :dans le catalogue et j ai a l affichage $img1Code:
1
2
3 echo '<td><a href="javascript:OuvrirFenetre(\'popupimage.php?bienid='.$data['bienid'].'\',\' popup\',\'resizable=yes,scrollbars=yes,width=600,height=500\')"> '.$data['bienimage'].'</a></td>';
mais j ai pas l image!
ca pourrait venir de quoi ?
dans ma requête j ai misqui me renvoye 5 octets carCode:,'".addslashes('$img1')."',
me renvoye rienCode:,'".addslashes($img1)."',
Voilà ce qui est dit pour récupérer l'image :
Il faut en gros récupérer le type et etc et faire ce qui est indiqué ;)Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 { $id = intval ($_GET['id']); include ("connexion.php"); $req = "SELECT img_id, img_type, img_blob ". "FROM images WHERE img_id = ".$id; $ret = mysql_query ($req) or die (mysql_error ()); $col = mysql_fetch_row ($ret); if ( !$col[0] ) { echo "Id d'image inconnu"; } else { header ("Content-type: ".$col[1]); echo $col[2]; } } else { echo "Mauvais id d'image"; }
ok merci je vais d abord faire comme c est fais dans le tuto et après j essaierai de l adapter a mon code.
merci encore de ta patience
:D
excusez moi de revenir encore à la charge mais j'ai fais le tutorial en entier!!
j ai bien fais attention à tout , ca sauvegarde bien la photo mais à l'apercu je ne vois qu'un bout de photo.
est ce que ca veut dire que easy php est bridé ?
oups en faite c est que mon nom de fichier est sans titre1.jpg
le fait de laisser un espace fais planter le fichier avec les autre ca marhce!!
euh finalement en ayant bien regarder, ya des photos qui s'affichent en entiere, d autres non . j ai pas l impression que c est une question de taille, ni une question de résolution ca depend des photos.
a quoi cela pourrait etre du ?
As tu penser que cela pourrait du à une image temporaire non complète...
Je t'explique : Quand tu utilises le formulaire avec file ton fichier est enregistré dans dans un répertoire temporaire, et donc il se peut que ce soit de la que vienne le problème.Il faudrait tester le $_FILES['nominpu']['error'] pour voir si c'est à 0...Si c'est différent de 0, il y a diverses erreurs possibles (je les ai pas toute en tête mais google doit les avoir ou fait une recherche dans les FAQ)
merci !!
c est vraiment bizarre, j ai fais unet ca me renvoye 0.Code:echo $_FILES['bienimage']['error'];
j'ai testé avec une image qui est coupé et pourtant ca me renvoye 0.
avec une image trop volumineuse ( qui dépasse ma limite fixée) , il me renvoye 2.
en faite j'ai réussi à faire enregistrer mes images blob avec mon formulaire de bien ( ce que je voulais faire a l'origine) comment ? je sais pas , j ai rien changé au code !
le problème que j'ai c est lors de l'affichage de l'image, il me sort tout le champ blob en chiffre et non l'image, j ai fais pourtant!et plus loin j ai mis:Code:
1
2 $query = "select * from bien where bientype='$choix' LIMIT $Ndeb,$Nmax" or die ("Probleme lors de la lecture de la base de donnees"); $resultat = mysql_query ($query) or die('Erreur SQL ! '.$query.''.mysql_error());
qu est ce qui n'irait pas ?Code:
1
2
3
4 echo '<td><a href="javascript:OuvrirFenetre(\'popupimage.php?bienid='.$data['bienid'].'\',\ 'popup\',\'resizable=yes,scrollbars=yes,width=600,height=500\')">'.$data['bienimage'] .'</a></td>';
merciiiiiiiiiiiiiiiiii je suis super content que ca enregistre!
Ce qu'il y a c'est que tu fais pas comme le tuto te le dit. Si tu remarques bien, tu dois envoyer le type de l'image au header...Tu le fais pas ca
ok d accord mais je suis pas obligé de lui attribuer un nom , il faut juste qu il sache le champ blob et si c est jpg ,gif...
en faite ce que je me demandai c est qu elle sont les champs obligatoires que je dois créer pour que l'image s'affiche , la j ai fais ca:
ca obligera a mettre des jpg mais le pb c est que ca fonctionne pas.Code:
1
2
3
4 header("content-type:jpg"); echo '<td><a href="javascript:OuvrirFenetre(\'popupimage.php?bienid='.$data['bienid'] .'\',\'popup\',\'resizable=yes,scrollbars=yes,width=600,height=500\')">' .$data['bienimage'].'</a></td>';
Si tu regardes le code :C'est fait directement dans le popup.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 $id = intval ($_GET['id']); include ("connexion.php"); $req = "SELECT img_id, img_type, img_blob ". "FROM images WHERE img_id = ".$id; $ret = mysql_query ($req) or die (mysql_error ()); $col = mysql_fetch_row ($ret); if ( !$col[0] ) { echo "Id d'image inconnu"; } else { header ("Content-type: ".$col[1]); echo $col[2]; } } else { echo "Mauvais id d'image"; }
$col[1] est le type dans la bdd et le $col[2] est ton champs blob...Mais comme c'est indiqué dans le tuto...Si tu ne fais pas comme c'est indiqué ca va jamais fonctionner:roll:
je viens enfin de comprendre , je dois obligatoirement créer un champ type et mon champ blob pour chaque photo.
la je l ai fais:
j ai regardé dans ma base , ca stocke bien la photo dans le champ blob et ca stocke dans img_type image/jpegCode:
1
2
3
4 header("content-type: ".$data['img_type']); echo '<td><a href="javascript:OuvrirFenetre(\'popupimage.php?bienid='.$data['bienid'].' \',\'popup\',\'resizable=yes,scrollbars=yes,width=600,height=500\')">' .$data['bienimage'].'</a></td>';
cependant ca m'affiche tjs pas ma photo , je comprend pas pk , est ce parce que les deux intrusions doivent se suivre ? car la je fais appel a l ouverture d un popup ?
alors j ai fais:
et il m'afficheCode:
1
2
3
4 header("content-type: ".$data['img_type']); echo '<td><a href="javascript:OuvrirFenetre(\'popupimage.php?bienid='.$data['bienid'].'\',\ 'popup\',\'resizable=yes,scrollbars=yes,width=600,height=500\')">' .$data['bienimage'].'</a></td>';
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\immobilier\montrebienbis.php:4) in c:\program files\easyphp1-8\www\immobilier\montrebienbis.php on line 59
le header me sert a quoi ?
je comprend pas trop comment je fais pour relier les deux (contenu binaire et extension du fichier) pour qu'il me l'affiche
Quand un header (<head></head>) est déjà envoyé ca pose ce problème.
de plus il faudrait que tu affiches directement dans le popup (là c'est sur que ca va fonctionner).
Sinon si tu as un contenu dans le head ca va toujours poser un problème vu qu'il est déjà envoyé.
De plus il est pas trop conseillé de mettre des images dans une bdd, mais c'est chacun son choix :aie:
mince alors !!
au début j avais stocké le nom du fichier dans la base mais le pb c est que ca obligeait dans le back office a saisir le nom du fichier dans un champ , c est pas très pratique, et pour supprimer les photos ca me parait bcp plus difficile car il faut supprimer par ftp.
si tu veux, le back office sera administrer par une personne qui ne connait rien au ftp... donc il faut qu elle puisse quand elle supprime un bien supprimer toute les photos.
je sais pas si tu comprends!!
Citation:
Envoyé par djedje37et28
D'après ce que je comprend tu mélanges dans la même page le code HTML et le code ton image (cf header content type machin).
Lorsque tu stockes des images dans la base de données, tu dois utiliser une page php spécial qui ne servira qu'à cela, afficher une image.
Donc l'idée serait d'avoir une page, apercu.php par exemple, avec le code suivant *grosso modo* :
Code:
1
2
3
4
5
6
7
8
9 $sql = "SELECT monimage dans ma table WHERE filename = 'un nom de fichier' "; $query = .. $data = ... header("content-type: ".$data['img_type']); echo $data["donnes du champs blob"];
Ensuite dans le backoffice lorsque tu souhaites afficher une image tu créés une bete balise img avec un src qui point sur le fichier apercu.php, comme ceci :
Pour une popup il suffira d'ouvrir la page apercu dans une nouvelle fenetre.Code:
1
2<img src="apercu.php?nomdefichier=toto.jpg">
Autrement comme le rappelle Kerod il existe d'autre solutions pour stocker des fichiers... Et l'une d'elle est le système de fichier, qui reste tout de même la voie la plus naturel pour cette tache, et qui n'est pas plus compliquer à manipuler.
C'est peut être même plus simple dès lors que l'on à passé le cap des droits utilisateurs d'unix.
bbye
donc si j ai bien compris, avec cette méthode quand la personne va consulter le catalogue immobilier , dans la première page qui montre sur une ligne un bien avec sa reference, son prix et sa photo;
la photo ne pourra pas etre afficher avec cette méthode ?
je ne pourrai mettre qu un lien vers apercu.php qui affichera la photo sur une page
c est bien ca ?
j ai mis une photo de ce que j'avais fais avant avec un répertoire