Balise <input type="file">

Résolu/Fermé
mikeb1992 Messages postés 280 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 6 janvier 2012 - 9 août 2008 à 12:27
mikeb1992 Messages postés 280 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 6 janvier 2012 - 12 août 2008 à 01:59
Bonjour, je dispose d'un formulaire dans lequel je vais rajouter une balise <input type="file">...

Tout d'abord j'aimerai savoir comment ça marche si on intègre<input type="file"> dans un formulaire avec deja tout pleins d'autres input...

Voici mon code :

<form action="monfichier.php" method="post">
<p>
<input type="text" name="name1" />
<input type="text" name="name2" />
<select name="name3">
<option value="opt1"></option>
<option value="opt2"></option>
<option value="opt3"></option>
<option value="opt4"></option>
<option value="opt5"></option>
</select>
</p>
</form>

comment dois-je rajouter le input type file ? Car j'ai entendu dire qu'il faut mettre un truc du genre enctype qu'il faut rajouter dans <form>, j'ai juste a le rajouter ou bien faut il faire un autre formulaire ?

Maintenant ma deuxième question : j'aimerai donner un nom d'image qui soit ("name" .$ID.$extension) mais j'aimerai que $ID corresponds a l'ID poster en même tant que les autre formulaire(voir plus haut). Et pour l'extension,pas de problème je sais deja comment faire !

Maintenant je vous prie de ne pas m'envoyer vers un tuto sur l'upload car je sais exactement comment uploader, je sais aussi comment renommer un fichier et le déplacé dans un dossier non temporaire, les seul problème que je rencontre sont ceux cité plus haut !

Merci !
A voir également:

9 réponses

ddez Messages postés 19 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 10 août 2008 9
9 août 2008 à 12:54
Pour gérer les envois de fichiers, fais comme ca :

coté HTML :
<form action="monfichier.php" method="post" enctype="multipart/form-data"> 
  <p> 
    <input type="text" name="name1" /> 
    <input type="text" name="name2" /> 
    <select name="name3"> 
      <option value="opt1"></option> 
      <option value="opt2"></option> 
      <option value="opt3"></option>  
      <option value="opt4"></option>  
      <option value="opt5"></option> 
    </select>
    <input type="file" name="fichier" />  
  </p> 
</form>


coté PHP :
   if($_FILES['fichier']['error']){
       switch($_FILES['photo']['error']){
          case 1: // UPLOAD_ERR_INI_SIZE
                  echoLe poids du fichier dépasse la limite autorisée par le serveur");
                  break;
          case 2: // UPLOAD_ERR_FORM_SIZE
                  echo("Le poids du fichier dépasse la limite autorisée dans le formulaire");
                  break;
          case 3: // UPLOAD_ERR_PARTIAL
                  echo("L'envoi du fichier a été interrompu pendant le transfert");
                  break;
          case 4: // UPLOAD_ERR_NO_FILE
                  echo("Le fichier que vous avez envoyé a une taille nulle");
                  break;
       }
    }
    else {
       $chemin_destination = '/var/www/fichiers/';
       move_uploaded_file($_FILES['fichier']['tmp_name'], $chemin_destination.$_FILES['fichier']['name']);
    }

Plus de détails ici :
http://www.commentcamarche.net/faq/sujet 889 php upload de fichiers
0
mikeb1992 Messages postés 280 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 6 janvier 2012 31
9 août 2008 à 13:34
O, merci pour ma premiere question mais tu n'as pas repondu a la 2eme, comment fair epour donner un nom auquel on rajoue un numero qui augmente ! merci !
0
ddez Messages postés 19 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 10 août 2008 9
9 août 2008 à 14:38
Si tu l'enregistres dans une base de donnée, tu peux utiliser l'identifiant de ton enregistrement
Sinon, tu peux toujours utiliser la fonction suivante pou ne rien écraser :
http://www.manuelphp.com/php/function.file-exists.php
0
mikeb1992 Messages postés 280 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 6 janvier 2012 31
9 août 2008 à 14:49
Oui justement, j'enregistre tout le contenu du formulaire dans une base de donnees mais je n'arrive pas a donner l'ID correspondant aux images...

Comment faire ? :(
0
mikeb1992 Messages postés 280 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 6 janvier 2012 31
9 août 2008 à 18:07
Up !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mikeb1992 Messages postés 280 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 6 janvier 2012 31
10 août 2008 à 03:02
Up ! :(
0
kryoportail Messages postés 222 Date d'inscription dimanche 10 août 2008 Statut Membre Dernière intervention 22 mai 2014 125
Modifié par 00lina00 le 24/07/2010 à 01:31
up !

Amicalement
S@M...
0
kryoportail Messages postés 222 Date d'inscription dimanche 10 août 2008 Statut Membre Dernière intervention 22 mai 2014 125
Modifié par 00lina00 le 24/07/2010 à 01:31
Re,

Trêve de plaisanteries

Je voudrais bien répondre à ta question, mais je ne comprends pas ce que tu souhaites faire...

Si tu veux associer un identifiant à chaque formulaire, il suffit d'ajouter un champ caché comme :
<input type="hidden" name="idform" value="MyIdForm" />
et de récupérer 'idform' via php ($_GET['idform'] ou $_POST['idform'])


Si tu veux incrémenter l'identifiant à chaque insertion d'une ligne en base de données, il suffit de créer une clef primaire numérique et de la définir autoincrémenté (comme la dit plus haut 'ddez')...


Amicalement
S@M...
0
ddez Messages postés 19 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 10 août 2008 9
10 août 2008 à 10:07
Bonjour,

Désolé d'avoir été aussi longtemps absent.
Voila comment j'ai fait pour donner l'identifiant de mon enregistrement au nom de ma photo :
 if(isset($_POST["action"])){
    if($_FILES['photo']['error']){
       ...
    else {
       $photo=$datas->newElement("photo");
       $nom_fichier = $photo["id"].".jpg";   //où ["id"] correspond à la colonne id de ma table (clé primaire auto-increment)
       $chemin_destination = '/var/www/fichiers/';
       move_uploaded_file($_FILES['fichier']['tmp_name'], $chemin_destination.$nom_fichier);
    }
 }

et voici la fonction newElement de la classe datas :
        function newElement($table){
           $str_requete="INSERT INTO ".$table." (id) VALUES ('')";
           $result=mysql_query($str_requete);
           $id=mysql_insert_id();
           return $this->getFirstElementAvecCondition($table,"id",$id);
        }

        function getFirstElementAvecCondition($table,$colonne,$valeur){
           $str_requete="SELECT * FROM " . $table ." WHERE " . $colonne . "=\"" . $valeur . "\"";
           $result=mysql_query($str_requete);
           $element=null;
           if($tuple=@mysql_fetch_assoc($result)){
              $element=$tuple;
           }
           return $element;
        }

Voila, j'espère que ca va t'aider.
Bon courage
0
mikeb1992 Messages postés 280 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 6 janvier 2012 31
12 août 2008 à 01:59
Désolé pour mon GROS retard...

Je te remercie pour le script mais en fait quoi que je fasse ca ne fonctionne pas, on m'a dit que cparce que je suis en local donc j'attendrai d'etre hebergé pour essayé autre chose...

@+
0