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 ?

Barbara Streisand
Libérer: 2024-11-28 20:13:11
original
313 Les gens l'ont consulté

How to Solve

Téléchargement de plusieurs fichiers dans CodeIgniter

Problème :

Le téléchargement de plusieurs fichiers à l'aide d'un seul élément de formulaire entraîne l'erreur " Vous n'avez pas sélectionné de fichier à upload."

Solution :

Le problème réside dans l'initialisation de la bibliothèque de téléchargement CodeIgniter. Lors de l'utilisation de l'attribut multiple dans le champ de saisie, il est nécessaire d'ajuster l'initialisation de la bibliothèque pour gérer plusieurs fichiers.

Méthode de téléchargement modifiée :

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;
}
Copier après la connexion

Explication :

  • Initialisation : La bibliothèque de téléchargement est initialisé et configuré pour gérer plusieurs fichiers en définissant plusieurs index dans $_FILES (c'est-à-dire images[]).
  • Gestion en plusieurs parties : L'attribut multiple sur le champ de saisie nécessite que le serveur gère plusieurs téléchargements de fichiers. L'initialisation ajoute le suffixe [] au nom d'entrée, permettant la publication de plusieurs fichiers.
  • Données du fichier : La boucle foreach traite chaque fichier séparément, initialisant $_FILES avec les données correspondantes et en définissant le nom du fichier comme titre concaténé avec le nom du fichier.
  • Processus de téléchargement : Chaque fichier est téléchargé en utilisant do_upload('images[]'), et les téléchargements réussis sont ajoutés au tableau $images.

En apportant ces modifications, vous pourrez télécharger plusieurs fichiers avec succès en utilisant l'attribut multiple de votre formulaire .

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal