Heim > Backend-Entwicklung > PHP-Tutorial > Wie behebt man den Fehler „Sie haben keine Datei zum Hochladen ausgewählt' beim Hochladen mehrerer Dateien in CodeIgniter?

Wie behebt man den Fehler „Sie haben keine Datei zum Hochladen ausgewählt' beim Hochladen mehrerer Dateien in CodeIgniter?

Barbara Streisand
Freigeben: 2024-11-28 20:13:11
Original
312 Leute haben es durchsucht

How to Solve

Mehrere Dateien in CodeIgniter hochladen

Problem:

Das Hochladen mehrerer Dateien mit einem einzelnen Formularelement führt zum Fehler „ Sie haben keine Datei ausgewählt hochladen.“

Lösung:

Das Problem liegt in der Initialisierung der CodeIgniter-Upload-Bibliothek. Wenn Sie das Mehrfachattribut im Eingabefeld verwenden, muss die Bibliotheksinitialisierung angepasst werden, um mehrere Dateien zu verarbeiten.

Geänderte Upload-Methode:

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;
}
Nach dem Login kopieren

Erklärung:

  • Initialisierung: Die Upload-Bibliothek ist initialisiert und konfiguriert, um mehrere Dateien zu verarbeiten, indem mehrere Indizes in $_FILES (d. h. Bilder[]) definiert werden.
  • Multipart-Verarbeitung: Das Mehrfachattribut im Eingabefeld erfordert, dass der Server mehrere verarbeitet Datei-Uploads. Die Initialisierung fügt dem Eingabenamen das Suffix [] hinzu, sodass mehrere Dateien gepostet werden können.
  • Dateidaten: Die foreach-Schleife verarbeitet jede Datei separat und initialisiert $_FILES mit den entsprechenden Daten und Festlegen des Dateinamens als Titel, der mit dem Dateinamen verkettet ist.
  • Upload-Prozess: Jede Datei ist mit do_upload('images[]') hochgeladen und erfolgreiche Uploads werden dem $images-Array hinzugefügt.

Durch diese Änderungen können Sie mehrere Dateien erfolgreich hochladen, indem Sie das Mehrfachattribut in verwenden Ihr Formular.

Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „Sie haben keine Datei zum Hochladen ausgewählt' beim Hochladen mehrerer Dateien in CodeIgniter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage