Une nouvelle version beaucoup plus optimisée pour l’envoi de plusieurs fichiers en même temps en utilisant codeIgniter est disponible ici

 

Hi all,

C’est vraiment ennuyant d’envoyer les fichiers un par un quand on a plusieurs fichier à uploader comme par exemple des images pour une galerie.

Heureusement, que HTML 5 permet maintenant l’envoi de plusieurs fichiers en même temps en utilisant l’attribut « multiple » qui est supporté par la majorité des navigateurs web.

Pour se servir de cet attribut pour uploader des fichiers en utilisant le framework PHP CodeIgniter dans sa version 3, on a besoin de quelques restructuration pour pouvoir uploader les fichiers correctement et en toute sécurité en utilisant la fonctionnalité (library) d’upload de fichier native de codeIgniter (system/libraries/Upload.php).

CodeIgniter 3 multifile upload

Au début, on va créer le formulaire d’upload (on peut créer le formulaire d’upload en utilisant le « Form helper » de CI mais ici je vais faire simple et créer un simple formulaire HTML):

Une fois on a créé la vue, on passe maintenant aux choses sérieuses: le controller

Si on fait un var_dump() de l’array $_FILES reçu après l’envoi du formulaire, on aura quelque chose comme ça:

Nous avons donc besoin de restructurer le tableau (array) pour le passer ensuite à la fonctionnalité d’upload.

Tout ce qu’il nous faut c’est quelques foreach et le tour est joué:

Maintenant nous avons un array formaté que nous pouvons utiliser pour uploader les fichiers. Voilà ce qu’un var_dump($_FILES) donne:

Il ne nous reste que d’initialiser la librairie « upload » avec notre configuration:

La dernière étape consiste à faire un boucle foreach pour envoyer les fichiers un par un:

Voici le code complet pour uploader plusieurs fichiers en même temps avec HTML 5 et CodeIgniter 3


Merci d'évaluer l'article: [CodeIgniter 3] Multi file upload form avec la Classe CI_Upload [PHP]

Score: 4.8 sur 5 Sur un total de 6 avis


Catégorie: CodeIgniter, Développement frontend, Developpement web, Diverses Astuces, PHP.