problème affichage image après upload

Default
,

Bonjour,

je n'arrive pas a afficher une image apres upload du fichier
pouvez vous m'aider merci :)

 <?php
                                if(!empty($userinfo['fichier']))
                                {
                                 ?>
                                <img src="<?php echo '/membres/avatars/' . basename($_FILES['fichier']['name']); ?>" width="150" />
                                 <?php
                                }
                                ?>

l'image ne s'affiche pas ?

14 Réponse

130719
, Il a répondu à ma question !

Après upload ton $_FILES se vide. Donc c'est normal que tu n'affiche rien.
Enregistre le lien de l'image dans ta base de donnée avec une jointure entre l'image et le membre qui l'a pour avatar.

40917
, Il a répondu à ma question !

Bonjour,
Tu testes si "$userinfo['fichier']" n'est pas vide.
Donc je pense que c'est cette variable qui contient le nom de l'image, donc ça sera elle à renseigner

Default
, Il a répondu à ma question !

Bonjour

j'ai totalement changer est taper cela

<img src="' . $_FILES['fichier']['tmp_name'] .'" width="190" height="240">';

juste l'image ne s'affiche pas totallement ?

[]()

130719
, Il a répondu à ma question !

Relis nos deux messages ...

Default
, Il a répondu à ma question !

Bonjour merci pour ta reponse
j'ai cree une nouvelle variable
$content_dir = dirname($_SERVER['SCRIPT_FILENAME']) . '/membres/avatars/' . $_SESSION['id_membres'] . "."
puis

130719
, Il a répondu à ma question !

si tu as nommé tes images avec l'id du membre normalement ca marche. Mais je te conseil de passé par un token plutot que d'afficher l'id en brute sur l'image.

Default
, Il a répondu à ma question !

bonsoir

pourrai je créee un fichier image pour chaque membre et la recuperer avec la fonction globe ,pourrais ton m'aider ?

Merci :)

116947
, Il a répondu à ma question !

On comprend pas ta demande là Jonh

Default
, Il a répondu à ma question !

bonjour

Exemple #1 Un moyen pratique pour remplacer opendir() par glob()

<?php
foreach (glob("*.txt") as $filename) {
echo "$filename occupe " . filesize($filename) . "\n";
}
?>
cecla aide ?

116947
, Il a répondu à ma question !

Me semble que tu t'es répondu tout seul là non ?

#1 sauvegarde ton fichier dans un dossier avec le pattern suivant : profile//picture/my-random-token.jpg
#2 tu recupère ton image tel que :

<?php
foreach (glob("/path/to/my/profile/<user_id>/picture/*.{jpg,png,gif}", GLOB_BRACE); as $image) {
    //Do what ever you want
}
?>
Default
, Il a répondu à ma question !

bonjour , il doit aussi se connecter a la sessions pour recuperer l'image ?

<?php $content_dir = dirname($_SERVER['SCRIPT_FILENAME']) . '/membres/avatars/' . $_SESSION['id_membres'] . "." ;
      $chemin = glob($content_dir);


       ?>

puis apres

<img src="<?php echo $chemin; ?>" width="190" height="240" /> ?

Merci d'avance :)

116947
, Il a répondu à ma question !

Mais je comprend pas ? décrit fonctionnellement ce que tu veux faire avec un maximum de détail. Oublie pas qu'on connait ni ton projet ni ton code.

130719
, Il a répondu à ma question !

roh lala c'pas compliqué, tu attribue au image un token. Ce token ce sera ni plus ni moins un uniquid() par exemple. Ensuite tu enregistre le token dans la bdd dans la ligne du membre. Et ensuite tu fais une selection.

// Selection le membre qui à pour ID l id de la session et récupère moi le token
echo '<img src="'.$token.'.jpg" />';

Pas besoin de t'emmbêter avec la fonction glob.

Default
, Il a répondu à ma question !

Bonjour :)
voici mon code php pour upload

dans edition profil.php

 if (isset($_POST['upload'])) { // si formulaire soumis
            $content_dir = dirname($_SERVER['SCRIPT_FILENAME']).'/membres/avatars/'; // dossier où sera déplacé le fichier
            $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
            $tmp_file = $_FILES['fichier']['tmp_name'];

            if (!is_uploaded_file($tmp_file)) {
                exit("Le fichier est introuvable");
            }

            // on vérifie maintenant l'extension
            $type_file = $_FILES['fichier']['type'];

            if (!strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png')) {
                exit("Le fichier n'est pas une image");
            }

            // on copie le fichier dans le dossier de destination
            $name_file = $_FILES['fichier']['name'];

            if (!move_uploaded_file($tmp_file, $content_dir .'/'. $name_file)) {
                exit("Impossible de copier le fichier dans $content_dir");
            }

            echo "Le fichier a bien été uploadé";
        }
        if (preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file)) {
            exit("Nom de fichier non valide");
        } else if (!move_uploaded_file($tmp_file, $content_dir . $name_file)) {
            exit("Impossible de copier le fichier dans $content_dir");
        }

est dans profil.php

<?php
session_start();
$content_dir = dirname($_SERVER['SCRIPT_FILENAME']).'/membres/avatars/';
      $chemin = glob($content_dir);
      var_dump($content_dir);

try {
    $bdd = new PDO('mysql:host=localhost;dbname=espace_membre;charset=utf8', 'root', '');
    array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
} catch (Exception $e) {
    die('Erreur : ' . $e->getMessage());
}

$reponse = $bdd->query("SELECT * FROM  membres");
var_dump($_SESSION);
while ($donnees = $reponse->fetch()) {
    ?>  

    <!DOCTYPE html>
    <html>
        <charset   
            <head>
                <title>TODO supply a title</title>
                <meta charset="utf-8">
            </head>
            <body>
                <div align="center">

                    <h2>Profil de <?php echo $donnees['pseudo']; ?></h2>
                    <br/><br/>

                    <img src="<?php echo $chemin; ?>" width="190" height="240" />

juste au dessu j'essaye d'afficher l'image .
a tu un exemple pour $token ?

Merci :)