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

Langage PHP Discussion :

Multi uploads + BDD


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2012
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 52
    Points : 11
    Points
    11
    Par défaut Multi uploads + BDD
    Bonjour à tous,

    Afin de finalisé mon site, il me reste une dernière chose à faire,
    J'ai un formulaire avec ajout de de bien, c'est un site d'agence immobilière.

    Ma table se présente comme cela :
    id, type etc... puis photo, photo_sup, photo_sup2 pour recueillir les 3 nom des photos.

    Je suis bloqué car je ne sais pas comment procédé, autant pour 1 envoie tout se passe bien autant pour plusieurs je reste bloqué...

    Voilà tout d'abord mon formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <form method="post" action="admin_bien.php" enctype="multipart/form-data">
    <fieldset>
    <legend>Photos</legend>
     
      <input name="photo" type="file" /><br />
      <input name="photo_sup" type="file" /><br />
      <input name="photo_sup2" type="file" /><br />
    </fieldset>
     
    <input type="submit" value="Envoyer"/>
            </p>
        </form>
    Jusque là pas de soucis mais c'est lors du traitement que ça se complique ! ^^

    Je fais appel à une page fonction.php dont le bout de code pour l'upload est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    function move_photo($photo)
    {
        $extension_upload = strtolower(substr(  strrchr($photo['name'], '.')  ,1));
        $name = time();
        $nomphoto = str_replace(' ','',$name).".".$extension_upload;
        $name = "./images/biens/".str_replace(' ','',$name).".".$extension_upload;
        move_uploaded_file($avatar['tmp_name'],$name);
        return $nomphoto;
    }
    ?>
    Et ma page de traitement pour ce qui est de l'upload :

    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
    <?php
        //Vérification de la premiere photo :
        if (!empty($_FILES['photo']['size']))
        {
            //On définit les variables :
            $maxsize = 10024; //Poid de l'image
            $maxwidth = 100; //Largeur de l'image
            $maxheight = 100; //Longueur de l'image
            $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides
     
            if ($_FILES['photo']['error'] > 0)
            {
                    $photo_erreur = "Erreur lors du transfert de l'avatar : ";
            }
            if ($_FILES['photo']['size'] > $maxsize)
            {
                    $i++;
                    $photo_erreur1 = "Le fichier est trop gros : (<strong>".$_FILES['photo']['size']." Octets</strong>    contre <strong>".$maxsize." Octets</strong>)";
            }
     
            $image_sizes = getimagesize($_FILES['photo']['tmp_name']);
            if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
            {
                    $i++;
                    $photo_erreur2 = "Image trop large ou trop longue : 
                    (<strong>".$image_sizes[0]."x".$image_sizes[1]."</strong> contre <strong>".$maxwidth."x".$maxheight."</strong>)";
            }
     
            $extension_upload = strtolower(substr(  strrchr($_FILES['photo']['name'], '.')  ,1));
            if (!in_array($extension_upload,$extensions_valides) )
            {
                    $i++;
                    $photo_erreur3 = "Extension de la photo incorrecte";
            }
        }
     
    $nomphoto=(!empty($_FILES['photo']['size']))?move_photo($_FILES['photo']):''; 
     
    // Insertion BDD
     
     //On balance le tout dans notre table
            mysql_query('
            INSERT INTO arc_achat (bien, type, habimm, ville, ref, prix, surface, pieces, remarque, exclu, vendu, photo_energie, contenu, photo, photo_sup, time)
    VALUES ("'.$bien.'" , "'.$type.'", "'.$habimm.'", "'.$ville.'", "'.$ref.'", "'.$prix.'", "'.$surface.'", "'.$pieces.'", "'.$remarque.'", "'.$exclu.'", "'.$vendu.'", "'.$photo_energie.'", "'.$contenu.'", "'.$nomphoto.'", "'.$temps.'") ') or die(mysql_error());
    Comment faire avec photo_sup et photo_sup2 ?

    Merci je galère là ^^

  2. #2
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Points : 8 040
    Points
    8 040
    Par défaut
    Salut,

    Il faut que tu boucles sur la variable $_FILES via un foreach() ou un for().

    De plus, tu trouveras quelques renseignements supplémentaires par ici : http://fr.php.net/manual/fr/features...d.multiple.php

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2012
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 52
    Points : 11
    Points
    11
    Par défaut
    Salut,

    Effectivement,

    Je suis déjà allez sur ce lien auparavant ^^

    Par contre ce qui me chagrine c'est comment je fais ma requête après ?

    Comme le imput name dans ce formulaire multi upload à le même nom même si il variera je suppose de cette manière,

    name="userfile[1]", name="userfile[2]"
    etc...

    merci

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2012
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 52
    Points : 11
    Points
    11
    Par défaut
    J'ai essayé de faire quelque chose comme sa en reprenant certaine variable de la fonction maisbon je pige pas trop...

    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
    <?php
    $extension_upload = strtolower(substr(  strrchr($photo['name'], '.')  ,1));
        $name = time();
        $name = "./images/biens/".str_replace(' ','',$name).".".$extension_upload;
     
    //places files into same dir as form resides
    foreach ($_FILES["pictures"]["error"] as $key => $error) {
       if ($error == UPLOAD_ERR_OK) {
           echo"$error_codes[$error]";
           move_uploaded_file(
             $_FILES["photofile"]["tmp_name"],$name[$key],
             $_FILES["photofile"]["name"],$name[$key]
           ) or die("Erreur d'upload.");
       }
    }
    ?>
    Et le formulaire :

    <fieldset>
    <legend>Photos</legend>

    <input name="photofile[]" type="file" /><br />
    <input name="photofile[]" type="file" /><br />
    <input name="photofile[]" type="file" /><br />
    </fieldset>

    merci

  5. #5
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Points : 8 040
    Points
    8 040
    Par défaut
    Copier (http://fr.php.net/manual/fr/function...oaded-file.php) sans comprendre c'est pô bien !

    Remplace ton $_FILES['pictures'] par $_FILES['photofile']

Discussions similaires

  1. multi-upload dans un wiki
    Par ravens1988 dans le forum Langage
    Réponses: 1
    Dernier message: 23/11/2008, 22h39
  2. [1.3.5] Probleme multi upload
    Par hellipse dans le forum Struts 1
    Réponses: 0
    Dernier message: 21/08/2008, 15h32
  3. [AJAX] Multi-upload et Ajax
    Par Zeo34 dans le forum Général JavaScript
    Réponses: 28
    Dernier message: 14/06/2008, 01h21
  4. [AJAX] Multi upload Ajax
    Par popovitch130 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 22/05/2008, 18h29
  5. [Upload] Multi upload sur un serveur
    Par krak70 dans le forum Langage
    Réponses: 3
    Dernier message: 07/10/2005, 12h44

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