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 :

Télécharger et afficher une image en php et mysql


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2010
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2010
    Messages : 414
    Par défaut Télécharger et afficher une image en php et mysql
    Bonjour

    J'ai un formulaire avec un champs fichier et je veux afficher sur une autre page et envoyer aussi les données dans la base de données. Comment afficher l'image ?

    Voici mon formulaire.php:

    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
    <form action="afficheFactureCours.php" method="post">  <fieldset>
        <legend>Infos de votre entreprise</legend>
        <textarea id="facturede" name="facturede" rows="4" cols="45"
          placeholder="Votre entreprise: Raison sociale, adresse.." required></textarea><br/><br/>
        <input type="text" placeholder="URL du Logo" name="urlLogo" required><br/><br/>
        <label for="file">Sélectionner votre logo</label>
        <input name="logo" type="file" size=50>
        <input type="hidden" name="MAX_FILE_SIZE" value="250000" />
      </fieldset><br/>
     
     
      <fieldset>
        <legend>Infos de base</legend>
        <input type="text" placeholder="Numéro de la facture" name="num"><br/><br/>
        <textarea id="client" name="client" rows="4" cols="45"
            placeholder="Facturé à: Raison sociale, adresse.." required></textarea><br/><br/>
        <br/><br/>
        <label>Date de la facture </label>
        <input type="date" name="dateFacture"><br/><br/>
      </fieldset><br/>
     
     
                <fieldset>
                <legend>Contenu de la facture formation</legend>
                <textarea id="prestation" name="prestation" rows="4"
                  placeholder="Prestation" required></textarea><br/><br/>
                <input type="number" placeholder="Nombre de jours" name="nbjours" required><br/><br/>
                <input type="number" placeholder="Tarif journalier" name="tarifjour" required><br/><br/>
                <textarea id="conditions" name="conditions" rows="10" cols="45"
                    placeholder="Conditions et paiements" required></textarea>
                <!-- <input type="number" placeholder="Taxe" name="taxe"><br/><br/> -->
                <!-- <input type="number" placeholder="Total du montant HT" name="montantHT"><br/><br/> -->
                </fieldset>
     
     
    <!-- <p>Veuillez choisir la taxe applicable :</p>
      <div>
        <input type="radio" id="tax19"
         name="taxe" value="Taxe à 19%">
         <label for="tax19">Taxe à 19%</label>
     
     
         <input type="radio" id="tax20"
          name="taxe" value="Taxe à 20%">
          <label for="tax20">Taxe à 20%</label>
     
     
          <input type="radio" id="tax25"
           name="taxe" value="Taxe à 25%">
           <label for="tax25">Taxe à 25%</label>
      </div> -->
    <br/>
        <input type="submit" value ="Créer une facture" />
          </form>
    Voici le fichier afficheFactureCours.php :
    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
    <?phprequire_once 'connexion.php';
    // On vérifie si la variable existe et sinon elle vaut NULL
    $num = isset($_POST['num']) ? $_POST['num'] : NULL;
    $client = isset($_POST['client']) ? $_POST['client'] : NULL;
    $prestation = isset($_POST['prestation']) ? $_POST['prestation'] : NULL;
    $nbjours = isset($_POST['nbjours']) ? $_POST['nbjours'] : NULL;
    $tarifjour = isset($_POST['tarifjour']) ? $_POST['tarifjour'] : NULL;
    $dateFacture = isset($_POST['dateFacture']) ? $_POST['dateFacture'] : NULL;
    $facturede = isset($_POST['facturede']) ? $_POST['facturede'] : NULL;
    $conditions = isset($_POST['conditions']) ? $_POST['conditions'] : NULL;
    $logo = isset($_POST['logo']) ? $_POST['logo'] : NULL;
    $urlLogo = isset($_POST['urlLogo']) ? $_POST['urlLogo'] : NULL;
    //$montantHT = isset($_POST['montantHT']) ? $_POST['montantHT'] : NULL;
    //$taxe = isset($_POST['taxe']) ? $_POST['taxe'] : NULL;
     
     
    include ("transfertFile.php");
     
     
     
     
    $req = $base->prepare('INSERT INTO facturation (num, client, prestation, nbjours, tarifjour, dateFacture, facturede, conditions, img_nom, img_taille, img_type, img_blob, urlLogo)
        VALUES ("'.$num.'", "'.$client.'", "'.$prestation.'", "'.$nbjours.'", "'.$tarifjour.'", "'.$dateFacture.'", "'.$facturede.'", "'.$conditions.'", "'.$img_nom.'","'.$img_taille.'","'.$img_type.'","'.$img_blob.'", "'.$urlLogo.'")');
        $req->execute(array(  'num' => $num,
                              'client' => $client,
                              'prestation'=> $prestation,
                              'nbjours'=> $nbjours,
                              'tarifjour'=> $tarifjour,
                              'dateFacture'=> $dateFacture,
                              'facturede'=> $facturede,
                              'conditions'=> $conditions,
                              'img_nom'=> $img_nom,
                              'img_taille'=> $img_taille,
                              'img_type'=> $img_type,
                              'img_blob'=> $img_blob,
                              'urlLogo'=> $urlLogo));
          //echo "les données ont bien étés insérées dans la base de données";
          $base = null;
    ?>
    Voici le fichier transfertFile.php :
    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
    <?php    function transfert(){
            $ret        = false;
            $img_blob   = '';
            $img_taille = 0;
            $img_type   = '';
            $img_nom    = '';
            $taille_max = 250000;
            $ret        = is_uploaded_file($_FILES['logo']['tmp_name']);
     
     
            if (!$ret) {
                echo "Problème de transfert";
                return false;
            } else {
                // Le fichier a bien été reçu
                $img_taille = $_FILES['logo']['size'];
     
     
                if ($img_taille > $taille_max) {
                    echo "Trop gros !";
                    return false;
                }
     
     
                $img_type = $_FILES['logo']['type'];
                $img_nom  = $_FILES['logo']['name'];
                $img_blob = file_get_contents ($_FILES['logo']['tmp_name']);
     
     
            }
        }
    ?>
    Dans le fichier afficheFactureCours.php comment afficher l'image insérée ?

    Aidez-moi svp !

    Ps : je me sers de ce tuto : http://beaussier.developpez.com/arti...hp/mysql/blob/

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Dans le tuto que tu cites, il y a une section "affichage de l'image" non ?

    Par contre pourquoi "afficheFacture" fait l'insertion dans la base de données et non pas l'affichage de la facture ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2010
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2010
    Messages : 414
    Par défaut
    Oui mais ils ont fait avec juste la table image. Moi je fait un formulaire avec plusieurs champs ainsi que le champ fichier donc ma base à plusieurs colonnes en dehors des colonnes images

  4. #4
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2010
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2010
    Messages : 414
    Par défaut
    J'ai re-suivi le tuto fait avec mysqli et moi j'ai utilisé PDO et ça ne marche pas et je ne sais pourquoi. J'ai cette erreur que je ne comprend pas:
    Fatal error: Uncaught Error: Call to a member function prepare() on null in C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\Facturation\transfertFile.php:27Stack trace:#0 C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\Facturation\formFile.php(10): transfert()#1 {main} thrown in C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\Facturation\transfertFile.php on line 27
    Voici mon formulaire formFile.php
    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
    <html>   <head>
          <title>Stock d'images</title>
       </head>
       <body>
         <?php
             include ("transfertFile.php");
             if ( isset($_FILES['fic']) )
             {
                 transfert();
             }
          ?>
          <h3>Envoi d'une image</h3>
          <form enctype="multipart/form-data" action="#" method="post">
             <input type="hidden" name="MAX_FILE_SIZE" value="250000" />
             <input type="file" name="fic" size=50 />
             <input type="submit" value="Envoyer" />
          </form>
          <p><a href="liste.php">Liste</a></p>
       </body>
    </html>
    et voici le fichier transfertFile.php
    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
    <?phprequire_once 'connexion.php';
        function transfert(){
            $ret        = false;
            $img_blob   = '';
            $img_taille = 0;
            $img_type   = '';
            $img_nom    = '';
            $taille_max = 250000;
            $ret        = is_uploaded_file($_FILES['fic']['tmp_name']);
     
     
            if (!$ret) {
                echo "Problème de transfert";
                return false;
            } else {
                // Le fichier a bien été reçu
                $img_taille = $_FILES['fic']['size'];
     
     
                if ($img_taille > $taille_max) {
                    echo "Trop gros !";
                    return false;
                }
     
     
                $img_type = $_FILES['fic']['type'];
                $img_nom  = $_FILES['fic']['name'];
                $img_blob = file_get_contents ($_FILES['fic']['tmp_name']);
                $req =$base->prepare('INSERT INTO images (img_nom, img_taille, img_type, img_blob)
                             VALUES ("'.$img_nom.'",
                                    "'.$img_taille.'",
                                    "'.$img_type.'",
                                    "'.addslashes($img_blob).'")');
                $req->execute(array(
                              'img_nom' => $img_nom,
                              'img_taille' => $img_taille,
                              'img_type' => $img_type,
                              'img_blob' => $img_blob));
                return true;
            }
        }
    ?>

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    $base n'est pas défini dans ta fonction.

    Tu peux ajouter
    au debut de la fonction.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Afficher une image en PHP
    Par bubuche4815 dans le forum Langage
    Réponses: 2
    Dernier message: 12/07/2014, 13h03
  2. Afficher une image en php
    Par most27 dans le forum Langage
    Réponses: 2
    Dernier message: 13/04/2014, 23h26
  3. afficher une image en php
    Par lamou23 dans le forum Langage
    Réponses: 2
    Dernier message: 03/07/2010, 15h32
  4. Afficher une image avec PHP
    Par a_zouggari dans le forum Langage
    Réponses: 2
    Dernier message: 22/04/2006, 18h02

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