IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Ajouter une image à ma bdd. Elle ne s'enregistre pas dans le fichier "images"


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Graphiste
    Inscrit en
    Avril 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Graphiste
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2019
    Messages : 25
    Points : 8
    Points
    8
    Par défaut Ajouter une image à ma bdd. Elle ne s'enregistre pas dans le fichier "images"
    Bonjour,

    J'aimerai ajouter une image dans ma base de donnée ainsi qu'un titre et une catégorie.
    Après avoir envoyé mon fichier, le lien qui donne le nom de la photo s'enregistre bien dans ma table 'realisations' dans 'image' mais l'image uploadée ne s'ajoute pas dans mon fichier 'images/...' du coup, rien ne s'affiche.

    Pouvez-vous m'aider ?

    J'ai mon formulaire :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            <form action="test2.php" method="post" enctype="multipart/form-data">
            <p>
                    Formulaire d'envoi de fichier :<br />
                    <input type="file" name="image" /><br />
    			<p><input type="text" name="categorie"></p>
          <p><input type="text" name="titre"></p>
                    <input type="submit" value="Envoyer le fichier" />
            </p>
    </form>

    Et le fichier d'envoi :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <?php
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', 'root', $pdo_options);
     
    $categorie = $_POST['categorie'];
     $titre = $_POST['titre'];    
     $nom = md5(uniqid("realisations_", true));
     $name = "images/".str_replace(' ','',$nom);
     
    if (isset($_FILES['image']) AND $_FILES['image']['error'] == 0)
    {
     
    	if ($_FILES['image']['size'] <= 1000000)
            {
     
    		$infosfichier = pathinfo($_FILES['images']['name']);
                    $extension_upload = $infosfichier['extension'];
                    $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
                    if (in_array($extension_upload, $extensions_autorisees))
                    {
     
     
                           $result = move_uploaded_file($_FILES['image']['tmp_name'],$name);
    if ($result) echo "Transfert réussi"; else { echo 'echec transfert';}
     
     
                    }
            }
    }
     
     
    try
    {
     
        $reponse = $bdd->query('SELECT * FROM realisations');
     
      $req = $bdd->prepare('INSERT INTO realisations (image, categorie, titre) VALUES(?, ?, ?)');
    $req->execute(array($nom, $_POST['categorie'], $_POST['titre']));
     
     
        while ($donnees = $reponse->fetch())
        {
        ?>
            <p>
             <img src="images/<?php echo $nom; ?>" ><br />
            </p>
        <?php
        }
     
        $reponse->closeCursor(); 
     
    }
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());
    }
     
     
    ?>

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($result) echo "Transfert réussi"; else { echo 'echec transfert';}
    L'un ou l'autre s'affiche ?
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Graphiste
    Inscrit en
    Avril 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Graphiste
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2019
    Messages : 25
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Désolé pour la réponse tardive, le covid est passé par là.

    Il n'affiche aucun des deux messages bizarrement. J'ai juste les petites icônes 'image' vide à la place de l'image téléchargée vu qu'elle ne s'enregistre dans la bdd.

    Dans la BDD, il enregistre bien toutes les données (en mode test pour le moment)

    Nom : bdd.jpg
Affichages : 93
Taille : 55,8 Ko

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par LEM4000 Voir le message
    Il n'affiche aucun des deux messages bizarrement.
    Si il n'affiche rien, c'est qu'il n'arrive pas dans cette condition. Tu peux ajouter une alternative d'affichage sur le transfert du fichier proprement dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if (isset($_FILES['image']) AND $_FILES['image']['error'] == 0)
    { 
    // ...
    } else {
        // cas d'erreur : 
        if (!isset($_FILES['image'])) { 
            echo "image non envoyée !"; 
        } else {
            echo "Erreur sur l'envoi de l'image : ".$_FILES['image']['error'];
        }
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Graphiste
    Inscrit en
    Avril 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Graphiste
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2019
    Messages : 25
    Points : 8
    Points
    8
    Par défaut
    J'ai modifié mais toujours pareil. Juste les icônes images qui s'affichent (il n'y a pas encore de CSS)

    Nom : Annotation 2020-09-08 190053.jpg
Affichages : 91
Taille : 29,5 Ko

    Voici le code :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <?php
    $categorie = $_POST['categorie'];
     $titre = $_POST['titre'];    
     $nom = md5(uniqid("realisations_", true));
     $name = "images/".str_replace(' ','',$nom);
     
    if (isset($_FILES['image']) AND $_FILES['image']['error'] == 0)
    {
     
    	if ($_FILES['image']['size'] <= 1000000)
            {
     
    		$infosfichier = pathinfo($_FILES['images']['name']);
                    $extension_upload = $infosfichier['extension'];
                    $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
                    if (in_array($extension_upload, $extensions_autorisees))
                    {
     
     
                           $result = move_uploaded_file($_FILES['image']['tmp_name'],$name);
    if ($result) echo "Transfert réussi"; else { echo 'echec transfert';}
     
     
                    }
            }
    } else {
        // cas d'erreur : 
        if (!isset($_FILES['image'])) { 
            echo "image non envoyée !"; 
        } else {
            echo "Erreur sur l'envoi de l'image : ".$_FILES['image']['error'];
        }
    }
     
     
    try
    {
     
        $reponse = $bdd->query('SELECT * FROM realisations');
     
      $req = $bdd->prepare('INSERT INTO realisations (image, categorie, titre) VALUES(?, ?, ?)');
    $req->execute(array($nom, $_POST['categorie'], $_POST['titre']));
     
     
        while ($donnees = $reponse->fetch())
        {
        ?>
            <p>
             <img src="images/<?php echo $nom; ?>" ><br />
            </p>
        <?php
        }
     
        $reponse->closeCursor(); 
     
    }
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());
    }
     
     
    ?>

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Question bête : tu as vérifié si les images sont créées dans le dossier images ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Graphiste
    Inscrit en
    Avril 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Graphiste
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2019
    Messages : 25
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Celira Voir le message
    Question bête : tu as vérifié si les images sont créées dans le dossier images ?
    C'est justement ça qui pose problème. Quand je les télécharge, elles ne vont pas dans le dossier images. Il y a juste le nom dans la base...

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Graphiste
    Inscrit en
    Avril 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Graphiste
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2019
    Messages : 25
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par LEM4000 Voir le message
    C'est justement ça qui pose problème. Quand je les télécharge, elles ne vont pas dans le dossier images. Il y a juste le nom dans la base...
    Est-ce qu'il y a du coup quelque chose de manquant dans mon code ?

Discussions similaires

  1. ajouter une image dans BDD comme objet olé
    Par lqayoub dans le forum ADO.NET
    Réponses: 1
    Dernier message: 06/07/2016, 16h22
  2. Réponses: 1
    Dernier message: 24/11/2011, 08h20
  3. [SQL Server] Ajouter une image
    Par lepiou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/01/2006, 09h10
  4. [JPanel] ajouter une image
    Par Michel38 dans le forum Agents de placement/Fenêtres
    Réponses: 14
    Dernier message: 27/06/2005, 16h28
  5. [C#] ajouter une image dynamiquement
    Par h_imane dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/04/2004, 11h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo