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 :

Formulaire de téléchargement multiple d'images


Sujet :

Langage PHP

  1. #1
    nal
    nal est déconnecté
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Points : 56
    Points
    56
    Par défaut Formulaire de téléchargement multiple d'images
    Bonsoir,

    J'ai trouvé un script d'upload d'image assez simple mais qui fonctionne et je cherche à l'adapter à un téléchargement multiple et simultanée d'images avec génération des différentes vignettes côté à cote.
    Je me permets de mettre mon code
    le formulaire de téléchargement multiple:

    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
    <table border="0" align="center" cellspacing="2" cellpadding="2">
        <tr align="center">
    <td><form enctype="multipart/form-data" action="modification2.php?idAgence=<?php echo($result->Identifiant) ;?>" method="post">
    image 1 : <input name="modimage1" type="file"></td>
     
    <td>
    image 2 : <input name="modimage2" type="file"></td>
     
    <td>
    image 3 : <input name="modimage3" type="file"></td>
    </tr>
     
      <tr align="center">
    <td>
    image 4 : <input name="modimage4" type="file"></td>
     
    <td>
    image 5 : <input name="modimage5" type="file"></td>
     
    <td>
    image 6 : <input name="modimage6" type="file"></td>
    </tr>
    <tr align="center">
    <input type="submit" value="Envoyer">
    </tr>
    </table>
    </form>
    et ci-dessous le scrip php d'upload et de génération de vignette, ici fait pour une seule image et que j'essai d'adapter à l'upload de plusieurs images simultanéement (si c'est possible ??

    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
    <?
    // Taille maximum Image1
    $MAX_FILE_SIZE = 150000;
     
    // Dossier de destination du fichier
    $folder = "Imagesagence/";
     
    // Tableau array des différents types
    $allowed_types = array("image/bmp", "image/gif", "image/pjpeg", "image/jpeg", "image/jpg", "multipart/x-zip", "video/msvideo");
     
    // Variables récupérée par methode POST du formulaires
    $fname = $HTTP_POST_FILES['modimage1']['name'];
    $ftype = $HTTP_POST_FILES['modimage1']['type'];
    $fsize = $HTTP_POST_FILES['modimage1']['size'];
    $ftmp = $HTTP_POST_FILES['modimage1']['tmp_name'];
     
    // Diverses test afin de savoir si :
    // Le format de fichier correspond à notre tableau array
    if(!in_array($ftype, $allowed_types)){$error = 1;}
     
    // La taille du fichier n'est pas dépassée
    if($fize > $MAX_FILE_SIZE){$error = 2;}
     
    // Le fichier n'existe pas déjà
    if(file_exists($folder."m_".$fname)){$error = 3;}
     
    // Si tout va bien, c'est bien déroulé
    if(copy($ftmp,''.$folder.''.$fname.'')) {$error = 0;}
    // Switch servant simplement à la gestion des erreures
    switch($error){
    case'0':
    echo("Fichier correctement envoyé.");
    echo "$fname";
    echo "<img src=/scripts/timthumb.php?src=Imagesagence/$fname&h=150&w=YY&zc=1 />";
     
    break;
     
    case'2':
    echo("Fichier trop volumineux.");
    break;
    case'3':
    echo("Fichier déjà existant.");
    break;
    }
    ?>
    Si quelqu'un a une idée pour adapter ce script au téléchargement multiple?...
    Merci par avance pour vos réponses
    Nal

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Regarde l'exemple 3.

    A+.

  3. #3
    nal
    nal est déconnecté
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Points : 56
    Points
    56
    Par défaut
    Merci ça marche pour le téléchargement des images !

    Juste une petite question (étant pseudo débutante):

    comment peut-on, après le téléchargement, pour faire apparaitre les noms des images téléchargées et les vignette, c est à dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "$fname" ;
    echo "<br>";
    echo "<img src=/scripts/timthumb.php?src=Imagesagence/$fname&h=150&w=YY&zc=1 />";
    j'ai essayé de le mettre à la fin du script ça fonctionne pas....comme y a plusieurs nom d'images différentes

    Merci beaucoup encore pour ton aide!

    nal

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    A quoi correspond $fname? peut-on voir un peu plus sur ton code?

    A+.

  5. #5
    nal
    nal est déconnecté
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Points : 56
    Points
    56
    Par défaut
    Bonjour,

    $name correspond au nom de l'image en jpg que j'essai de récupérer au moment du téléchargement

    Merci pour ton aide

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    peut-on voir un peu plus sur ton code?

  7. #7
    nal
    nal est déconnecté
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Points : 56
    Points
    56
    Par défaut
    Oui pardon....
    j'ai donc repris le code de l'exemple 3 dont tu m'avais donné le lien

    niveau formulaire ça donnait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form action="" method="post" enctype="multipart/form-data">
    <p>Images:
    <input type="file" name="pictures[]" />
    <input type="file" name="pictures[]" />
    <input type="file" name="pictures[]" />
    <input type="submit" value="Send" />
    </p>
    </form>
    et au php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    foreach ($_FILES["pictures"]["error"] as $key => $error) {
        if ($error == UPLOAD_ERR_OK) {
            $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
            $name = $_FILES["pictures"]["name"][$key];
            move_uploaded_file($tmp_name, "data/$name");
        }
    }
    ?>
    ça fonctionne bien niveau téléchargement multiple mais j'aurai aimé récupérer le nom de chacunes des images téléchargées (les noms séparement) pour m"en servir par la suite dans un script de génération de vignette.

    Du coup pour l'instant je cherche juste à récupérer le nom des images
    et je supposais que dans le script de l'ex, ce nom devait se trouver sous la variante $name.
    Le problème c'est que dans ce script les images ne sont pas différenciées les unes des autres sous le nom "pictures".
    Je pourrais attribuer un nom différent à chacune mais alos comment faire apparaitre (avec "echo") le nom de chacune séparement??


  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    ce n'est pourtant pas sorcier :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    foreach ($_FILES["pictures"]["error"] as $key => $error) {
        if ($error == UPLOAD_ERR_OK) {
            $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
            $name = $_FILES["pictures"]["name"][$key];
            move_uploaded_file($tmp_name, "data/".$name);
            echo 'le fichier '.$name.' a été enregistré<br />';
        }
    }
    ?>
    Sinon, au lieu de $name, on peut utiliser un array aussi :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    foreach ($_FILES["pictures"]["error"] as $key => $error) {
        if ($error == UPLOAD_ERR_OK) {
            $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
            $name[$key] = $_FILES["pictures"]["name"][$key];
            move_uploaded_file($tmp_name, "data/".$name[$key]);
        }
    }
    ?>
    et afficher plus loin :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    foreach ($name as $key => $nom) {
            echo '-'.$key.' : le fichier '.$nom.' a été enregistré<br />';
    }
    ?>

  9. #9
    nal
    nal est déconnecté
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Points : 56
    Points
    56
    Par défaut
    Oui ça marche

    (c'est peut-être pas sorcier mais quand on sait pas....
    Merci!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] Forcer le téléchargement d'une image JPG
    Par Amnesiak dans le forum Langage
    Réponses: 5
    Dernier message: 09/11/2006, 23h50
  2. formulaire avec selection multiple
    Par regis94 dans le forum Access
    Réponses: 2
    Dernier message: 09/08/2006, 15h48
  3. Réponses: 3
    Dernier message: 02/12/2005, 13h23
  4. Réalisation d'un téléchargement multiple
    Par Vodkha dans le forum Langage
    Réponses: 5
    Dernier message: 05/10/2005, 10h39
  5. Formulaire et bouton submit avec image mapée
    Par dody dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 06/12/2004, 16h00

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