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

Résolu
joseph2033 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
lerod83 Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   4
 
ç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
ferry171
 
s'il teplait et la recuperation en php tu as gerer comment
0
ferry171
 
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
Fobiflow
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   894
 
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   Statut Membre Dernière intervention   4
 
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
Ju'
 
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   Statut Membre Dernière intervention   3
 
Tout comme Ju' je ne connaissait pas le multiple et c'est très pratique ! Merci joseph2033 :)
0