Maison >développement back-end >tutoriel php >Comment résoudre l'erreur « Vous n'avez pas sélectionné de fichier à télécharger » lors du téléchargement de plusieurs fichiers dans CodeIgniter ?

Comment résoudre l'erreur « Vous n'avez pas sélectionné de fichier à télécharger » lors du téléchargement de plusieurs fichiers dans CodeIgniter ?

DDD
DDDoriginal
2024-11-26 00:28:13683parcourir

How to Solve the

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn