Scoop.it

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: 5 sur 5 Sur un total de 3 avis


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