Balise <input type="file">
Résolu/Fermé
mikeb1992
Messages postés
280
Date d'inscription
Statut
Membre
Dernière intervention
-
mikeb1992 Messages postés 280 Date d'inscription Statut Membre Dernière intervention -
mikeb1992 Messages postés 280 Date d'inscription Statut Membre Dernière intervention -
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 !
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:
- Balise <input type="file">
- .Bin file - Guide
- Host file - Guide
- .Dat file - Guide
- Iso file - Guide
- File sdcard/dcim - Télécharger - Gestion de fichiers
9 réponses
Pour gérer les envois de fichiers, fais comme ca :
coté HTML :
coté PHP :
Plus de détails ici :
http://www.commentcamarche.net/faq/sujet 889 php upload de fichiers
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
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 !
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
Sinon, tu peux toujours utiliser la fonction suivante pou ne rien écraser :
http://www.manuelphp.com/php/function.file-exists.php
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 ? :(
Comment faire ? :(
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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...
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...
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 :
et voici la fonction newElement de la classe datas :
Voila, j'espère que ca va t'aider.
Bon courage
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