Uploader plusieurs fichiers à l'aide d'un input multiple

Résolu/Fermé
joseph2033 Messages postés 20 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 27 décembre 2012 - 27 déc. 2012 à 13:05
lerod83 Messages postés 64 Date d'inscription mardi 11 août 2015 Statut Membre Dernière intervention 25 novembre 2019 - 23 juin 2016 à 13:20
Bonjour,

j'ai un souci avec l'INPUT type File.
j'ai créé un formulaire avec un input de type file multiple pour que l'utilisateur puisse uploader plusieurs fichiers à la fois.
le souci est que, quand je veux récupérer la liste des fichiers dans le contrôleur j'ai accès qu'a un seul fichier même quand j'en sélectionne plusieurs.

Controller:

...
$names = array();
$adapter = new Zend_File_Transfer_Adapter_Http();
                    
$files = $adapter->getFileInfo();
foreach ($files as $file => $info) {
    $name = $adapter->getFileName($file);
    $names[] = $name;
}
$this->view->error = var_dump($names);
...

la vue du input Form:

<input id="image" type="file" name="image" multiple>


le résultat du var_dump:

array
  0 => string 'C:\wamp\tmp\image2.jpg' (length=21)


dans cette exemple j'ai essayé d'uploader deux images "image1.jpg et image2.jpg" mais bizarrement je récupère juste image2.jpg.

Si mon problème n'est pas très clair n'hésitez pas à me poser des questions pour plus de détails.

Merci d'avance pour votre aide.



A voir également:

3 réponses

joseph2033 Messages postés 20 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 27 décembre 2012 4
27 déc. 2012 à 17:22
ça y est je viens de trouver la solution
il fallait ajouter "image[]" au lieu de "image" à name du input: comme ça dans le contrôleur on pourra récupérer une liste de fichiers et non un seul fichier.

<input id="image" type="file" name="image[]" multiple>
4
s'il teplait et la recuperation en php tu as gerer comment
0
voila un peut ma facon de proceder
/* formulaire*/

<form name="identification" method="post" action="php/identifie.php" role="form" enctype="multipart/form-data">
<div class="form-group">
<label>scan cni</label>
<input type="file" name="image"/>
<span style="color: #A70303">*</span>
</div>
<input type="submit" name="ident" class="btn btn-success"/>
Tous les champs suivis de <span style="color: #A70303">(*)</span> sont obligatoires.
</form>


et pour /*identifie.php*/

function addIdentif($file_dest){
if(!empty($_FILES)){
$file_name = $_FILES['image']['name'];
$file_extention= strrchr($file_name,".");
$file_tmp_name = $_FILES['image']['tmp_name'];
$file_dest = 'images_cni/'.$file_name;
$extention_autorisees = array('.jpeg','.JPG','.png','.PNG','.jpg','.JPEG');
if(in_array($file_extention,$extention_autorisees)){
if(move_uploaded_file($file_tmp_name,$file_dest)){
insertPersonne($file_dest);
} else {
echo 'une erreur est survenue durant le transfert';
}
} else {
echo 'votre fichier n\'est pas autorisées';
}
}
}

/*la fonction insertPersonne*/

function insertPersonne($url_image_produit){
try{
global $dbb;
$stmt = $dbb->datab->prepare("INSERT INTO identification (url_image_produit) VALUES (:url_image_produit)");
$stmt->bindParam(':url_image_produit', $url_image_produit, PDO::PARAM_STR);
$stat = $stmt->execute();

return $stat;
}catch(PDOException $e){
throw new Exception($e->getMessage());
}
}

ceci marche bien pour u fichier mais je ne sais pas comment faire pour deux merci de votre aide
0
Je crois que la version plus "propre" est:

<input id="image" type="file" name="image[]" multiple="multiple" >
0
lerod83 Messages postés 64 Date d'inscription mardi 11 août 2015 Statut Membre Dernière intervention 25 novembre 2019
Modifié par lerod83 le 23/06/2016 à 13:21
et comment les gerer dans variable php, j'ai actuellement lr même probleme!
A l'aide s'il vous plait!
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
27 déc. 2012 à 16:39
tu ne peux pas mettre 'multiple' dans un input type file

si tu veux uploader plusieurs fichiers mets plusieurs <input type=file
-1
joseph2033 Messages postés 20 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 27 décembre 2012 4
27 déc. 2012 à 17:02
Merci pour ta réponse Alain_42,
en mettant le input de cette manière:
<input id="image" type="file" name="image" multiple>

j'arrive à sélectionner plusieurs fichiers.

Plusieurs input file dans un formulaire ce n'est pas esthétique. et je souhaite laisser libre à l'utilisateur de choisir le nombre de fichier qu'il souhaite sélectionner.

à mon avis le problème ne viens pas du multiple c'est plutôt le contrôleur qui pose problème.
PS: j'utilise zend framwork 1.11
0
Bien d'accord avec joseph2033 ! D'une part, plusieurs input file ce n'est pas esthetique mais en plus ce n'est vraiment pas pratique si on veut charger une trentaine de photos pour une galerie d'image !!
Merci pour la solution, le "multiple" dans l'input file, je ne connaissais pas et je t'avoue que ça me sauve la vie !!
0
Loobsix Messages postés 63 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 18 mars 2015 3
6 févr. 2015 à 21:59
Tout comme Ju' je ne connaissait pas le multiple et c'est très pratique ! Merci joseph2033 :)
0