Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récupérer la valeur d'un champ upload après le post

    12 juin 2006 à 21:36:22

    Bonjour,

    Je poste un formulaire dans lequel il y a un champ pour uploader une image.
    Comme il y a ailleurs une zone obligatoire non remplie, je reviens sur le formulaire en affichant un gentil message d'erreur.
    Je réaffiche tous les champs postés que j'ai transférés dans des variables PHP comme ceci:

    $email=$_POST['email'];



    Seulement voilà, impossible de récupérer le contenu des champs d'upload, qui ressemblent à ceci:

    <input type="hidden" name="MAX_FILE_SIZE" value="204800" />
    <input class="saisie" type="file" size="35" maxlength="40" name="image" />


    l'utilisateur est alors obligé de resaisir le chemin de son image.

    Quelqu'un a une idée ?
    Peut etre uploader une image à partir de son chemin saisi dans un champ texte ?
    Mais dans ce cas, plus de bouton "Parcourir...", bien utile

    La page d'accueil de mon futur site: Les infos à suivre

    • Partager sur Facebook
    • Partager sur Twitter
      24 juin 2006 à 15:39:41

      Salut, as-tu bien mis
      <form method="post" action="cible.php" enctype="multipart/form-data">
      ?
      Un tuto très utile pour toi: http://www.siteduzero.com/tuto-3-1718-1-upload-de-fichiers-par-formulaire.html
      • Partager sur Facebook
      • Partager sur Twitter
        26 juin 2006 à 12:06:28

        Citation : Vizigr0u

        Salut, as-tu bien mis

        <form method="post" action="cible.php" enctype="multipart/form-data">


        ?
        Un tuto très utile pour toi: http://www.siteduzero.com/tuto-3-1718-1-upload-de-fichiers-par-formulaire.html



        Oui, je l'ai bien indiqué.

        Mon problème se résume à la perte de l'information sur le chemin du fichier à uploader quand je recharge le formulaire.

        Une solution ne serait-elle pas de saisir le chemin du fichier à uploader dans un champ texte ?
        Mais comment dans ce cas uploader "manuellement" ce fichier. Il me semble que je n'ai pas accès par mesure de sécurité au disque local de l'utilisateur.
        • Partager sur Facebook
        • Partager sur Twitter
          4 juillet 2006 à 9:23:09

          Citation : afedida

          Citation : Vizigr0u

          Salut, as-tu bien mis

          <form method="post" action="cible.php" enctype="multipart/form-data">


          ?
          Un tuto très utile pour toi: http://www.siteduzero.com/tuto-3-1718-1-upload-de-fichiers-par-formulaire.html



          Oui, je l'ai bien indiqué.

          Mon problème se résume à la perte de l'information sur le chemin du fichier à uploader quand je recharge le formulaire.

          Une solution ne serait-elle pas de saisir le chemin du fichier à uploader dans un champ texte ?
          Mais comment dans ce cas uploader "manuellement" ce fichier. Il me semble que je n'ai pas accès par mesure de sécurité au disque local de l'utilisateur.


          UP
          • Partager sur Facebook
          • Partager sur Twitter
            4 juillet 2006 à 9:36:35

            Citation : afedida

            Je poste un formulaire dans lequel il y a un champ pour uploader une image.
            Comme il y a ailleurs une zone obligatoire non remplie, je reviens sur le formulaire en affichant un gentil message d'erreur.
            Je réaffiche tous les champs postés que j'ai transférés dans des variables PHP comme ceci:


            Toute la question est :
            - comment procèdes-tu pour retourner au formulaire ?
            • Partager sur Facebook
            • Partager sur Twitter
              4 juillet 2006 à 11:44:48

              Citation : Bison

              Citation : afedida

              Je poste un formulaire dans lequel il y a un champ pour uploader une image.
              Comme il y a ailleurs une zone obligatoire non remplie, je reviens sur le formulaire en affichant un gentil message d'erreur.
              Je réaffiche tous les champs postés que j'ai transférés dans des variables PHP comme ceci:


              Toute la question est :
              - comment procèdes-tu pour retourner au formulaire ?


              Je poste le formulaire avec sa propre adresse en "action" et la procédure de validation est au début du code.
              Je teste si la variable $_POST de mon bouton de validation est renseignée. Dans ce cas, je valide.
              • Partager sur Facebook
              • Partager sur Twitter
                7 juillet 2006 à 15:11:06

                Tu devrais indiquer d'autres éléments à ton probléme, ton code par exemple ne serait pas superflu.

                Sinon, tu pourras toujours faire des up indéfiniment, tu n'auras jamais de réponses apportant la solution.
                • Partager sur Facebook
                • Partager sur Twitter
                  20 juillet 2006 à 20:45:22

                  Citation : strucky

                  Tu devrais indiquer d'autres éléments à ton probléme, ton code par exemple ne serait pas superflu.

                  Sinon, tu pourras toujours faire des up indéfiniment, tu n'auras jamais de réponses apportant la solution.


                  Voici donc un code PHP "simplifié":

                  <?
                  $afficheform=true;
                  $action=$_SERVER['PHP_SELF'];
                  if (isset($_POST['envoyer'])) { 
                          // controles de validité
                          $err=NULL;
                          $titre=$_POST["titre"];
                          if (isset($_FILES['image1'])) {
                                  $nomImage=$_FILES['image1'];
                                  list($name, $ext) = split('\.', $nomImage['name']);
                                  $image1 = "_1.$ext";
                          }
                          if ($titre==NULL) {
                                  $err.= " Le titre est obligatoire.";
                          }
                          //  fin des controles de validité
                         
                          if ($err==NULL) {
                                  // pas d'erreurs, on sauvegarde
                                  $query= "UPDATE annonces SET titre = '$titre', image1= '$image1'";
                                  //requete($query); // fonction externe
                                  echo "annonce enregistrée";
                                  $afficheform=false;
                          }
                          else {echo $err; }
                  }
                  // ------------------------------------------------
                  //                  FORMULAIRE ANNONCE
                  // -----------------------------------------------
                  if ($afficheform){      ?>
                          <form id="Annonce" action="<? echo $action;?>" method="post" enctype="multipart/form-data">
                          <p>
                          <!-- Titre -->
                          <input class="saisie8" name="titre" type="text" size="85" maxlength="80"
                          value="<? echo $titre;?>" />
                          </p>
                          <p>
                          <!-- fichier image -->
                          <input type="hidden" name="MAX_FILE_SIZE" value="204800" />
                          <input type="file" size="35" maxlength="40" name="image1" />
                          </p>
                          <input type="submit" name="envoyer" value="Soumettre mon annonce";/>
                          </form><?
                  }
                  ?>

                  Si vous n'entrez pas de titre mais que vous entrez un nom d'image, le formulaire se recharge, affiche un message d'erreur, et le nom d'image est perdu.
                  Ma question c'est: Comment faire pour mémoriser le nom de l'image ou l'image elle-meme lorsque j'ai à recharger le formulaire ?
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Récupérer la valeur d'un champ upload après le post

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown