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 :

[Upload] upload fichiers avec multiple submit


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 175
    Points : 60
    Points
    60
    Par défaut [Upload] upload fichiers avec multiple submit
    Salut,
    Sur mon site j'aimerais permettre à mes utilisateurs d'uploader 6 images à partir d'une seule et meme page. Je ne veux pas uploader les images simultanement. L'utilisateur devra cliquer sur le bouton submit à chaque fois...

    Pour l'instant j'arrive à uploader une image sans probleme. Pour ca j'ai cree un form

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <form name="form1" method="post" action="..." enctype="multipart/form-data">
    <input type="hidden" name="max_file_size" value="20000" />
    <input type="file" name="file"> 
    <input type="submit" name="Submit" value="Envoyer">
    </form>
    et le code php suivant (don't worry... je vais sécuriser l'upload plus tard)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?
    if(isset($_FILES['file']))
    {
          $dest_dossier = 'img/';
    	  $dest_fichier = basename($_FILES['file']['name']);
          move_uploaded_file($_FILES['file']['tmp_name'], $dest_dossier . $dest_fichier);
          }
    ?>
    J'ai besoin de vos lumieres car je sais pas comment faire pour uploader plusieurs images avec plusieurs forms INDEPENDANTS. C'est surtout au niveau du code pour uploader que ca coince.

    Merci d'avance
    dolf13

  2. #2
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Moi à la bourrin je fais un formulaire pour chaque input

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 175
    Points : 60
    Points
    60
    Par défaut
    Citation Envoyé par Anduriel
    Moi à la bourrin je fais un formulaire pour chaque input
    Oui moi aussi mais je sais pas comment gérer ca au niveau du code PHP qui gere l'upload des fichiers. Je sais le faire pour un mais pas pour plusieurs. Quelqu'un a une idee?

  4. #4
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    En fait, tu rediriges le formulaire sur ta page... et tant que <input type="file" /> n'est pas vide, tu restes et tu mets en cache le ficher dans un tableau en variable de session.

    ensuite tu rediriges sur le script de traitement
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  5. #5
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Mais si tu as 6 formulaires (6 boutons submit), qu'est ce qui t'empêche de mettre le même nom au champs type file?
    Comme ça tu vérifies juste avec if (isset($_POST['file']))

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 175
    Points : 60
    Points
    60
    Par défaut
    Citation Envoyé par Anduriel
    Mais si tu as 6 formulaires (6 boutons submit), qu'est ce qui t'empêche de mettre le même nom au champs type file?
    Comme ça tu vérifies juste avec if (isset($_POST['file']))
    En fait j'enregistre aussi le nom du formulaire dans la bdd donc je peux pas donner le meme nom au champ.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 175
    Points : 60
    Points
    60
    Par défaut
    Citation Envoyé par gorgonite
    En fait, tu rediriges le formulaire sur ta page... et tant que <input type="file" /> n'est pas vide, tu restes et tu mets en cache le ficher dans un tableau en variable de session.

    ensuite tu rediriges sur le script de traitement
    merci... j'apprecierais vraiment si tu pouvais me donner un exemple de code ou un tuto car je galère vraiment avec mon formulaire.

  8. #8
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Après avoir trimé longtemps sur ton problème je ne vois qu'une solution: au clique du bouton submit concernant un champ type file précis, il faut que tu indiques dans un champ hidden le file concerné. Voila donc ce que j'ai fait:

    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
    <?php
     
    if (isset($_POST['MAX_FILE_SIZE'])) {
       $sended_file = $_POST['id_file'];
       echo $_FILES['file']['name'][$sended_file];
    }
     
    echo '<script language="Javascript">'.
         'function change_file(id) {'.
         'document.forms["upload_form"].elements["id_file"].value = id;'.
         '}'.
         '</script>';
     
    echo '<form method="post" name="upload_form" enctype="multipart/form-data">'.
         '<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />'.
         '<input type="hidden" name="id_file" value="1" />'.
         '<input type="file" name="file[1]" /><input type="submit" OnClick="change_file(1)" value="Charger" /><br />'.
         '<input type="file" name="file[2]" /><input type="submit" OnClick="change_file(2)" value="Charger" /><br />'.
         '<input type="file" name="file[3]" /><input type="submit" OnClick="change_file(3)" value="Charger" /><br />'.
         '</form>';
     
    ?>
    Essai de comprendre. Si ta un problème demande moi

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 175
    Points : 60
    Points
    60
    Par défaut
    merci beaucoup Anduriel. Je vais regarder ca. Comme je ne trouvais pas la solution j'ai decide de faire autrement. Si j'arrive à comprendre la tienne je l'appliquerai.

    Dans ma solution je cree un formulaire pour chaque fichier et l'utilisateur upload les images une par une. Il faut juste que je trouve comment enregistrer le nom des fichiers uploader en session. Pour l'instant jarrive à en enregistrer un mais quand j'upload un nouveau fichier l'ancien nom est remplace par le nouveau et ainsi de suite. T'as une idee?

    J'enregistre les variables en session pour ensuite les enregistrer dans la base à la fin. Je sais pas si c le mieux à faire... mais bon je debute et pour l'instant je me debrouille comme ca.

  10. #10
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Citation Envoyé par dolf13
    Pour l'instant jarrive à en enregistrer un mais quand j'upload un nouveau fichier l'ancien nom est remplace par le nouveau et ainsi de suite. T'as une idee?
    C'est surement que tu ne fais pas une session tableau. Tu as surement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['file'] = $dernier_fichier;
    Il faut faut faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['file'][] = $dernier_fichier;
    ou placer les fichiers dans un tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    /* Récupération */
    $files = (isset($_SESSION['file'])) ? $_SESSION['file'] : array();
    /* Ajout */
    $files[] = $dernier_fichier;
    /* Mise à jour de la session */
    $_SESSION['file'] = $files;
    Par contre je ne comprends pas cette histoire de sessions pour fichiers qui sont uploadé séparement.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 175
    Points : 60
    Points
    60
    Par défaut
    merci Anduriel. je vais essayer de mettre ca en place.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 175
    Points : 60
    Points
    60
    Par défaut
    Voici le code de la page. ca t'aidera peut etre a comprendre pourquoi je dis que les fichiers sont uploade separement.

    Mon problème est simple. Quand j'upload le 2eme fichier je n'arrive pas à enregistrer la variable du 1er fichier ("dest_fichier_1") en session pour la récupérer ensuite sur la page d'apres.

    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
     
    <?
    session_start();
    if(!isset($_SESSION['username'])) 
    {
      echo '<h5>Vous devez vous identifier pour passer une annonce </h5>';
      include('login.html');
      exit;
    }
    ?> 
     
    <?
    $username=""; $username=$_SESSION['username'];
    $id=$_POST["id"];
    $nom=$_POST["nom"];
    $prenom=$_POST["prenom"];
    $dest_fichier_1="";
    $dest_fichier_2="";
    ?>
     
    <head>
    <title></title>
    <link rel="stylesheet" type="text/css" href="mystyle.css" />
    </head>
     
    <body>
     
    <table align="left" cellpadding="0" cellspacing="0" border="0" width="900">
     
    <tr>
    <td>
    <a href="default.php"><img src="img/logo.gif" align="absmiddle" border="0" alt=""></a>
    </td>
    </tr>
     
    <tr>
    <td>
     
    <form method="POST" action="vente-03.php" enctype="multipart/form-data">
    <input name="id" type="hidden" id="id" value="<?php echo "$id"; ?>">
    <input name="nom" type="hidden" id="nom" value="<?php echo "$nom"; ?>">
    <input name="prenom" type="hidden" id="prenom" value="<?php echo "$prenom"; ?>">
     
    <br>
    <?php echo( "Votre ID: <b>".$id."</b><br>\n" ) ; ?>
    <?php echo( "Votre nom: <b>".$nom."</b><br>\n" ) ; ?>
    <?php echo( "Votre prenom: <b>".$prenom."</b><br>\n" ) ; ?>
    <br />
     
    Photo 1 &nbsp;<input type="file" name="pic1" />
    <input type="submit" name="envoi" value="Envoyer le fichier" />
     
    <?php	  
    if(isset($_FILES['pic1']))
    {
          unset($erreur);
    	  $extensions_ok = array('gif', 'jpg', 'jpeg', 'GIF', 'JPEG', 'JPG');
          $taille_max = "300000";
          $dest_dossier = 'img/';
          if( !in_array( substr(strrchr($_FILES['pic1']['name'], '.'), 1), $extensions_ok ) )
          {
          echo $erreur = 'Veuillez sélectionner un fichier de type gif ou jpg !';
          }
          elseif( file_exists($_FILES['pic1']['tmp_name'])
          and filesize($_FILES['pic1']['tmp_name']) > $taille_max)
          {
          echo $erreur = 'Votre fichier doit faire moins de 300Ko !';
          }
          if(!isset($erreur))
          {
    	  $timeline = microtime();
          $dest_fichier_1 = $timeline . "-" . $_FILES['pic1']['name']; 
          move_uploaded_file($_FILES['pic1']['tmp_name'], $dest_dossier . $dest_fichier_1);
    	  echo $message = '<font color="#FF0000"><b>Fichier transmis '.$dest_fichier_1.' !</b></font>';
    	  }
          }
          ?>
    </form>
     
     
    <form method="POST" action="vente-03.php" enctype="multipart/form-data">
    <input name="id" type="hidden" id="id" value="<?php echo "$id"; ?>">
    <input name="nom" type="hidden" id="nom" value="<?php echo "$nom"; ?>">
    <input name="prenom" type="hidden" id="prenom" value="<?php echo "$prenom"; ?>">
    <input name="$dest_fichier_1" type="hidden" value="<?php echo "$dest_fichier_1"; ?>">
     
    <br>
    <?php echo( "Votre ID: <b>".$id."</b><br>\n" ) ; ?>
    <?php echo( "Votre nom: <b>".$nom."</b><br>\n" ) ; ?>
    <?php echo( "Votre prenom: <b>".$prenom."</b><br>\n" ) ; ?>
    <?php echo( "Votre pic1: <b>".$dest_fichier_1."</b><br>\n" ) ; ?>
    <br />
     
    Photo 2 &nbsp;<input type="file" name="pic2" />
    <input type="submit" name="envoi" value="Envoyer le fichier" />
     
    <?php	  
    if(isset($_FILES['pic2']))
    {
          unset($erreur);
    	  $extensions_ok = array('gif', 'jpg', 'jpeg', 'GIF', 'JPEG', 'JPG');
          $taille_max = "300000";
          $dest_dossier = 'img/';
          if( !in_array( substr(strrchr($_FILES['pic2']['name'], '.'), 1), $extensions_ok ) )
          {
          echo $erreur = 'Veuillez sélectionner un fichier de type gif ou jpg !';
          }
          elseif( file_exists($_FILES['pic2']['tmp_name'])
          and filesize($_FILES['pic2']['tmp_name']) > $taille_max)
          {
          echo $erreur = 'Votre fichier doit faire moins de 300Ko !';
          }
          if(!isset($erreur))
          {
    	  $timeline = microtime();
          $dest_fichier_2 = $timeline . "-" . $_FILES['pic2']['name'];
          move_uploaded_file($_FILES['pic2']['tmp_name'], $dest_dossier . $dest_fichier_2);
    	  echo $message = '<font color="#FF0000"><b>Fichier transmis '.$dest_fichier_2.' !</b></font>';
    	  }
          }     
          ?>
    </form>
     
    <form name="form1" method="post" action="vente--04.php" enctype="multipart/form-data">
    <input name="id" type="hidden" id="id" value="<?php echo "$id"; ?>">
    <input name="nom" type="hidden" id="nom" value="<?php echo "$nom"; ?>">
    <input name="prenom" type="hidden" id="prenom" value="<?php echo "$prenom"; ?>">
    <input type="hidden" name="dest_fichier_1" value="<?php echo "$dest_fichier_1"; ?>">
    <input type="hidden" name="dest_fichier_2" value="<?php echo "$dest_fichier_2"; ?>">
    <br>
    <?php echo( "Votre ID: <b>".$id."</b><br>\n" ) ; ?>
    <?php echo( "Votre nom: <b>".$nom."</b><br>\n" ) ; ?>
    <?php echo( "Votre prenom: <b>".$prenom."</b><br>\n" ) ; ?>
    <?php echo( "Votre pic1: <b>".$dest_fichier_1."</b><br>\n" ) ; ?>
    <?php echo( "Votre pic2: <b>".$dest_fichier_2."</b><br>\n" ) ; ?>
    <br />
    <input type="submit" name="Submit" value="Envoyer">
    </form>
     
    </td>
    </tr>
     
    </table>
     
     
     
    </body></html>

  13. #13
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Je ne comprends pas trop les 3 formulaires à la suite en faite. D'après ce que j'ai compris tu veux utiliser lle dernier fichier transmi dans les formulaires suivants. Il suffit de mettre alors en session le dernier fichier posté et le récupérer (s'il existe). Ce que j'ai modifié est en orange. Si c'est pas ça précise un peu

    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    <?
    session_start();
    if(!isset($_SESSION['username'])) 
    {
      echo '<h5>Vous devez vous identifier pour passer une annonce </h5>';
      include('login.html');
      exit;
    }
    ?> 
    
    <?
    $username=$_SESSION['username'];
    $id=$_POST["id"];
    $nom=$_POST["nom"];
    $prenom=$_POST["prenom"];
    $dest_fichier_1= (isset($_SESSION['file1'])) ? $_SESSION['file1'] : '';
    $dest_fichier_2= (isset($_SESSION['file2'])) ? $_SESSION['file2'] : '';
    ?>
    
    <head>
    <title></title>
    <link rel="stylesheet" type="text/css" href="mystyle.css" />
    </head>
    
    <body>
    
    <table align="left" cellpadding="0" cellspacing="0" border="0" width="900">
    
    <tr>
    <td>
    <a href="default.php"><img src="img/logo.gif" align="absmiddle" border="0" alt=""></a>
    </td>
    </tr>
    
    <tr>
    <td>
    
    <form method="POST" action="vente-03.php" enctype="multipart/form-data">
    <input name="id" type="hidden" id="id" value="<?php echo "$id"; ?>">
    <input name="nom" type="hidden" id="nom" value="<?php echo "$nom"; ?>">
    <input name="prenom" type="hidden" id="prenom" value="<?php echo "$prenom"; ?>">
    
    <br>
    <?php echo( "Votre ID: <b>".$id."</b><br>\n" ) ; ?>
    <?php echo( "Votre nom: <b>".$nom."</b><br>\n" ) ; ?>
    <?php echo( "Votre prenom: <b>".$prenom."</b><br>\n" ) ; ?>
    <br />
    
    Photo 1 &nbsp;<input type="file" name="pic1" />
    <input type="submit" name="envoi" value="Envoyer le fichier" />
    
    <?php	  
    if(isset($_FILES['pic1']))
    {
          if (isset($erreur)) unset($erreur);
    	      $extensions_ok = array('gif', 'jpg', 'jpeg', 'GIF', 'JPEG', 'JPG');
          $taille_max = "300000";
          $dest_dossier = 'img/';
          if( !in_array( substr(strrchr($_FILES['pic1']['name'], '.'), 1), $extensions_ok ) )
          {
             echo $erreur = 'Veuillez sélectionner un fichier de type gif ou jpg !';
          }
          elseif( file_exists($_FILES['pic1']['tmp_name'])
          and filesize($_FILES['pic1']['tmp_name']) > $taille_max)
          {
             echo $erreur = 'Votre fichier doit faire moins de 300Ko !';
          }
          if(!isset($erreur))
          {
    	      $timeline = microtime();
          $dest_fichier_1 = $timeline . "-" . $_FILES['pic1']['name']; 
          $_SESSION['file1'] = $dest_fichier_1;
          move_uploaded_file($_FILES['pic1']['tmp_name'], $dest_dossier . $dest_fichier_1);
    	      echo $message = '<font color="#FF0000"><b>Fichier transmis '.$dest_fichier_1.' !</b></font>';
    	  }
          }
          ?>
    </form>
      
    
    <form method="POST" action="vente-03.php" enctype="multipart/form-data">
    <input name="id" type="hidden" id="id" value="<?php echo "$id"; ?>">
    <input name="nom" type="hidden" id="nom" value="<?php echo "$nom"; ?>">
    <input name="prenom" type="hidden" id="prenom" value="<?php echo "$prenom"; ?>">
    <input name="$dest_fichier_1" type="hidden" value="<?php echo "$dest_fichier_1"; ?>">
    
    <br>
    <?php echo( "Votre ID: <b>".$id."</b><br>\n" ) ; ?>
    <?php echo( "Votre nom: <b>".$nom."</b><br>\n" ) ; ?>
    <?php echo( "Votre prenom: <b>".$prenom."</b><br>\n" ) ; ?>
    <?php echo( "Votre pic1: <b>".$dest_fichier_1."</b><br>\n" ) ; ?>
    <br />
    
    Photo 2 &nbsp;<input type="file" name="pic2" />
    <input type="submit" name="envoi" value="Envoyer le fichier" />
    
    <?php	  
    if(isset($_FILES['pic2']))
    {
          if (isset($erreur)) unset($erreur);
    	      $extensions_ok = array('gif', 'jpg', 'jpeg', 'GIF', 'JPEG', 'JPG');
          $taille_max = "300000";
          $dest_dossier = 'img/';
          if( !in_array( substr(strrchr($_FILES['pic2']['name'], '.'), 1), $extensions_ok ) )
          {
             echo $erreur = 'Veuillez sélectionner un fichier de type gif ou jpg !';
          }
          elseif( file_exists($_FILES['pic2']['tmp_name'])
          and filesize($_FILES['pic2']['tmp_name']) > $taille_max)
          {
             echo $erreur = 'Votre fichier doit faire moins de 300Ko !';
          }
          if(!isset($erreur))
          {
    	      $timeline = microtime();
          $dest_fichier_2 = $timeline . "-" . $_FILES['pic2']['name'];
          $_SESSION['file2'] = dest_fichier_2;
          move_uploaded_file($_FILES['pic2']['tmp_name'], $dest_dossier . $dest_fichier_2);
    	      echo $message = '<font color="#FF0000"><b>Fichier transmis '.$dest_fichier_2.' !</b></font>';
    	  }
          }     
          ?>
    </form>
    
    <form name="form1" method="post" action="vente--04.php" enctype="multipart/form-data">
    <input name="id" type="hidden" id="id" value="<?php echo "$id"; ?>">
    <input name="nom" type="hidden" id="nom" value="<?php echo "$nom"; ?>">
    <input name="prenom" type="hidden" id="prenom" value="<?php echo "$prenom"; ?>">
    <input type="hidden" name="dest_fichier_1" value="<?php echo "$dest_fichier_1"; ?>">
    <input type="hidden" name="dest_fichier_2" value="<?php echo "$dest_fichier_2"; ?>">
    <br>
    <?php echo( "Votre ID: <b>".$id."</b><br>\n" ) ; ?>
    <?php echo( "Votre nom: <b>".$nom."</b><br>\n" ) ; ?>
    <?php echo( "Votre prenom: <b>".$prenom."</b><br>\n" ) ; ?>
    <?php echo( "Votre pic1: <b>".$dest_fichier_1."</b><br>\n" ) ; ?>
    <?php echo( "Votre pic2: <b>".$dest_fichier_2."</b><br>\n" ) ; ?>
    <br />
    <input type="submit" name="Submit" value="Envoyer">
    </form>
    
    </td>
    </tr>
    
    </table>
    
       
       
    </body></html>

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 175
    Points : 60
    Points
    60
    Par défaut
    En fait sur cette page je veux permettre à l'utilisateur d'uploader 2 images. Le 1er formulaire sert à uploader la 1ere image, le 2eme formulaire la 2eme image et le 3eme permet d'aller à l'etape suivante. Il y a deja plusieurs etapes avant celle ci et pour l'instant aucune info n'a ete enregistre dans la base. Je transmet juste les info de page en page.

    POur l'instant quand j'upload la 2eme image (Formulaire 2) je n'arrive pas à recuperer le nom de la 1ere image. Et quand je clique sur le formulaire 3 je recupere uniquement le nom de la 2eme image alors que je veux recuperer celui de la 1ere image ET celui de la 2eme pour ensuite les enregistrer dans la base.

    J'ai essaye avec ton code. La 1ere fois ca a très bien marche. Je recupere bien les 2 noms. Seulement quand j'essaie a nouveau les noms des images que j'ai uploade precedement sont toujours en session et donc si l'utilisateur decide de ne pas uploader d'image (pour sa 2eme annonce) je vais quand meme enregistrer le nom des images qu'il a uploader à la 1ere annonce.

    J'essaie d'etre le plus clair possible mais c pas facile à expliquer . Je te remercie du temps que tu passes à essayer de comprendre mon charabia.

  15. #15
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Sisi j'ai compris un peu plus
    donc si l'utilisateur decide de ne pas uploader d'image (pour sa 2eme annonce) je vais quand meme enregistrer le nom des images qu'il a uploader à la 1ere annonce.
    Le dernier truc que je ne comprends pas c'est que si l'utilisateur à uploadé la deuxième image, c'est normal que le nom de l'image reste en session non? Comment peut-il la "dé-uploader" ?

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 175
    Points : 60
    Points
    60
    Par défaut
    oui c normal qu'elle reste en session... je voulais dire que s'il decide d'ajouter une deuxieme annonce avec cette fois une seule image et bien le nom de la 2eme image uploade lors de la 1ere annonce est toujous en session.

    Par exemple si j'ajoute une 1ere annonce avec 2 images les noms restent en session. ENsuite si j'ajoute une 2eme annonce et que pour cette annonce j'ajoute juste une image il y a toujours le nom de la 2eme image de la 1ere annonce qui est en session. Tu comprends mon probleme?

  17. #17
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Ca y est j'ai compris
    Il suffit que sur ton fichier vente--04.php tu supprimes les sessions:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (isset($_SESSION['file1']))
       unset($_SESSION['file1']);
    if (isset($_SESSION['file2']))
       unset($_SESSION['file2']);

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 175
    Points : 60
    Points
    60
    Par défaut
    c bon j'y suis enfin arrive grace à toi. MErci pour tout.

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

Discussions similaires

  1. [PHP 5.4] upload de fichier avec choix multiple
    Par Mlle JACQUES Hélène dans le forum Langage
    Réponses: 2
    Dernier message: 27/01/2015, 11h49
  2. condition d'upload de fichier avec "submit"
    Par monlou dans le forum Langage
    Réponses: 3
    Dernier message: 26/03/2010, 00h03
  3. [PHP 5.2] [Upload] Upload de fichier avec bar de progression
    Par pierrot10 dans le forum Langage
    Réponses: 2
    Dernier message: 26/05/2009, 08h27
  4. [Upload] Upload de fichier avec HTTP POST
    Par Invité(e) dans le forum Langage
    Réponses: 8
    Dernier message: 22/05/2008, 11h04
  5. [Upload] Upload de fichier avec un script PHP
    Par largolgd dans le forum Langage
    Réponses: 7
    Dernier message: 23/04/2006, 15h21

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