Téléchargements de fichiers multiples dans CodeIgniter
De nombreuses applications Web nécessitent la possibilité de télécharger plusieurs fichiers à la fois. CodeIgniter simplifie cette tâche grâce à sa bibliothèque de téléchargement de fichiers intégrée. Cependant, des problèmes peuvent survenir lors de la gestion de plusieurs fichiers avec un seul élément de formulaire.
Problème :
Dans l'exemple fourni, un message d'erreur « Vous n'avez pas sélectionné un fichier à télécharger" se produit lors de la tentative de téléchargement de plusieurs fichiers. Cela se produit car le nom du champ de saisie du fichier images[] n'est pas correctement géré dans la méthode upload_files().
Solution :
Pour résoudre ce problème, nous pouvons modifier la méthode upload_files() pour accepter le nom des images[] et gérer les fichiers individuels en conséquence :
private function upload_files($path, $title, $files) { $config = array( 'upload_path' => $path, 'allowed_types' => 'jpg|gif|png', 'overwrite' => 1, ); $this->load->library('upload', $config); $images = array(); foreach ($files['name'] as $key => $image) { $_FILES['images[]']['name'] = $files['name'][$key]; $_FILES['images[]']['type'] = $files['type'][$key]; $_FILES['images[]']['tmp_name'] = $files['tmp_name'][$key]; $_FILES['images[]']['error'] = $files['error'][$key]; $_FILES['images[]']['size'] = $files['size'][$key]; $fileName = $title . '_' . $image; $images[] = $fileName; $config['file_name'] = $fileName; $this->upload->initialize($config); if ($this->upload->do_upload('images[]')) { $this->upload->data(); } else { return false; } } return $images; }
En mettant à jour la méthode, chaque fichier du Le tableau images[] est correctement géré, résolvant le message d'erreur et permettant à plusieurs téléchargements de fichiers de fonctionner comme prévu.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!