AFFICHAGE image avec $_POST

samn1 Messages postés 88 Statut Membre -  
samn1 Messages postés 88 Statut Membre -
Bonjour,
SVP voici mon code qui permet d'afficher une image uploader et ça marche pas!
Je possede deux fichier le premier est du html le voila
<html>
<head><title>testfichier</title></head>
<body>
upload your file: 
<form name="f1" action="fichierAff.php" method="post">
<input type="file" name="fichier" size="60">
<input type="hidden" name="nomFichier">
<input type="submit" name="b1" value="envoyer" /></form>
</body>


le deuxieme est mon fichier .php qui se charge pour l'affichage:
<?php
$r=$_POST['nomFichier'];
echo " votre image uploadée est $r:::<img src=$r height=50 width=44>";
?>


J'ai besoin de votre aide
d'avance Merci
Cordialement
A voir également:

5 réponses

ReDLoG
 
Bonjour,
1èrement, tu tentes d'afficher une valeur vide! En effet $_POST['nomFichier'] correspond à ce champ hidden de ton formulaire qui ne contient aucune valeur car pas de "value" :
<input type="hidden" name="nomFichier">

2èmement, ton image uploadé est accessible à partir du champ file de ton formulaire par le tableau (array) $_FILES['fichier'] :
<input type="file" name="fichier" size="60">

La valeur size que tu as inscrit correspond à un fichier de 60 Ko, ce qui est très peu...
En lisant la doc PHP, tu aurais trouvé (et donc appris) de toi-même où se situe ton erreur dans le traitement des fichiers uploadés, je t'invite à aller la consulter sans plus tarder...
0
le père
 
Bonjour

Dans ta balise form, il te manque le enctype="multipart/form-data" indispensable pour uploader des fichiers :

<form name="f1" action="fichierAff.php" method="post" enctype="multipart/form-data">


Quant au traitement, aucun rapport avec ce que tu fais, trouve un tutorial ou lis la doc :
http://www.php.net/manual/fr/features.file-upload.post-method.php
Ce n'est pas très difficile
0
samn1 Messages postés 88 Statut Membre
 
Merci bien,
j'ai trouvé des exemples et je suis entrain de les suivre!
Maintenant je voudrais afficher les images qui existent dans un dossier est-ce que ce script suffira?: (sachant que ce repertoire contient seulement des images!)
<?php
echo "Mes Images:";
$directory="C:\Users\HP\Pictures\Nouveau dossier";
opendir($directory);
if ($dir=opendir($directory))
{
while ($file=readdir($dir))
echo "<img src=$file>";
}
?>
0
le père
 
echo "<img src=$file>";

Quand tu fais ça, le 'src' ne contient que le nom de l'image, sans aucun chemin. Le client va donc aller la chercher dans le même dossier que ton script, qui n'est probablement pas le bon.

Il faut ajouter le chemin relatif pour aller de ton script au dossier qui contient les images, quelque chose du genre :
echo "<img src='images/$file'>";
0
le père
 
De plus, dans ta boucle while ($file=readdir($dir)), il faut tester que $file est bien un fichier avec is_file, sinon, tu vas essayer d'afficher les sous dossiers (il peut y avoir . et .. entre autres..). Il faudrait d'ailleurs vérifier que les fichiers que tu trouves sont bien des images et pas n'importe quoi.
0
samn1 Messages postés 88 Statut Membre
 
j'ai essayé comme ça et ça marche pas encore:
<?php
echo "bonjour";
$directory="C:\Users\HP\Pictures\Nouveau dossier";
opendir($directory);
if ($dir=opendir($directory))
{
while ($file=readdir($dir))
if (is_file($file))
echo "<img src=C:\Users\HP\Pictures\Nouveau dossier\\".$file.">";
}
?>
0
le père
 
opendir($directory);
if ($dir=opendir($directory))

Pourquoi ouvrir deux fois le répertoire ? ton premier opendir($directory); ne sert à rien.

Ensuite, avec ton echo "<img src=C:\Users\HP\Pictures\Nouveau dossier\\".$file.">"; le nom de chemin est C:\etc.. c'est à dire un fichier du PC de ton visiteur, pas de ton serveur. Tant que tu es ton seul visiteur, ça ne fait pas une grosse différence, mais quand ton site sera en ligne, tes visiteurs ne verront rien. Et tous ceux qui n'ont pas windows ne comprendront pas C;\...
En plus, avec une erreur, tu as mis deux \ à la fin.

J'avais écrit Il faut ajouter le chemin relatif . Chaque mot à un sens, je n'avais pas écrit "relatif" pour faire joli ou savant. En fait, tu peux mettre une adresse absolue (avec http://tonsite/Pictures.etc)) Mais en pratique, le plus simple est souvent d'utiliser un chemin relatif, c'est à dire de ne mettre que ce qu'il faut ajouter au dossier qui contient ton script pour arriver à celui qui contient les images, quitte à mettre ../ pour remonter d'un cran
0
le père
 
Derniers détails : ajoute des " ou des ' dans src='qqchose'. Et tu gagnerais beaucoup à éviter les espaces et les caractères spéciaux dans les noms de dossier (pas de Nouveau Dossier). Ce n'est pas interdit, mais il faut alors utiliser des fonctions qui vont te compliquer inutilement la vie.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
samn1 Messages postés 88 Statut Membre
 
Merci bien Le Pére pour tous vos remarques,
A bientot
0