Pourquoi pas tout simplement :
sinon $img1 c'est quoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 '$bienprix','".addslashes($img1)."', '$vid1',
Pourquoi pas tout simplement :
sinon $img1 c'est quoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 '$bienprix','".addslashes($img1)."', '$vid1',
$img1 c est :
et $bienimage c est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part $img1 = file_get_contents ($_FILES['bienimage']['tmp_name']);
apparamment ca marche si je fais de ta facon en entourant $img1 de '
Code : Sélectionner tout - Visualiser dans une fenêtre à part $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 $img1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 car
Code : Sélectionner tout - Visualiser dans une fenêtre à part ,'".addslashes('$img1')."',me renvoye rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part ,'".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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
![]()
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 : Sélectionner tout - Visualiser dans une fenêtre à part 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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![]()
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/jpeg
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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'affiche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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![]()
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!!
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 apercu.php : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager