Heim  >  Artikel  >  Backend-Entwicklung  >  Hier sind einige Artikeltitel in einem Frageformat basierend auf Ihrem Artikel: * **Hochladen mehrerer Dateien in PHP: Warum schlägt `move_uploaded_file` fehl und wie kann man es beheben?** * **Mehrere Datei-Upload mit

Hier sind einige Artikeltitel in einem Frageformat basierend auf Ihrem Artikel: * **Hochladen mehrerer Dateien in PHP: Warum schlägt `move_uploaded_file` fehl und wie kann man es beheben?** * **Mehrere Datei-Upload mit

Patricia Arquette
Patricia ArquetteOriginal
2024-10-26 04:13:02498Durchsuche

Here are a few article titles in a question format based on your article:

* **Uploading Multiple Files in PHP: Why Does `move_uploaded_file` Fail, and How to Fix It?** 
* **Multiple File Upload with jQuery and PHP:  How to Correctly Loop and Move Uploade

Probleme beim Hochladen mehrerer Dateien: Eine PHP- und jQuery-Lösung

Bei Ihren Bemühungen mit PHP sind Sie beim Versuch, mehrere Dateien hochzuladen, auf eine Hürde gestoßen. Lassen Sie uns untersuchen, wie Sie diese Herausforderung meistern können, indem Sie sich mit dem bereitgestellten Codeausschnitt befassen und das Problem beheben.

Der Code

Die HTML-Datei enthält ein Formular mit einem Dateieingabefeld, das mehrere Auswahlmöglichkeiten ermöglicht (mehrfach=mehrfach). Eine Schaltfläche löst beim Klicken die Funktion sendfile() aus und leitet den Upload-Vorgang ein. Die Funktion sendfile() erstellt ein FormData-Objekt, durchläuft die ausgewählten Dateien und hängt sie an die Datennutzlast an. Die ajax()-Funktion von jQuery wird dann verwendet, um die Daten zur Verarbeitung an uploadfile.php zu senden.

Die PHP-Datei (uploadfile.php) definiert ein Zielverzeichnis und versucht, hochgeladene Dateien einzeln zu verschieben.

Das Hindernis: Hochladen einer einzelnen Datei

Der bereitgestellte Code versucht fälschlicherweise, jede hochgeladene Datei einzeln zu verschieben, was bei einer einzelnen Datei funktioniert, bei Mehrfachauswahl jedoch nicht. Der Kern des Problems liegt in der Konstruktion der for-Schleife.

Die Lösung: Hochgeladene Dateien in einer Schleife durchlaufen

Die geeignete Lösung besteht darin, eine umfassendere foreach-Schleife zu verwenden, um die hochgeladenen Dateien zu durchlaufen. Dieser Ansatz stellt sicher, dass jede Datei verarbeitet und in das Zielverzeichnis verschoben wird.

Um dies zu erreichen, sind folgende Anpassungen an uploadfile.php erforderlich:

<code class="php">foreach ($_FILES['myfile']['name'] as $i => $name) {
    if (move_uploaded_file($_FILES['myfile']['tmp_name'][$i], $target . $name)) {
        echo 'Successfully copied';
    } else {
        echo 'Sorry, could not copy';
    }
}</code>

Diese verfeinerte Version verarbeitet mehrere korrekt Dateien, indem der Name und der temporäre Pfad jeder Datei durchlaufen werden, sodass sie einzeln verschoben werden können. Die Schleife stellt sicher, dass jede ausgewählte Datei berücksichtigt und in das angegebene Zielverzeichnis verschoben wird.

Das obige ist der detaillierte Inhalt vonHier sind einige Artikeltitel in einem Frageformat basierend auf Ihrem Artikel: * **Hochladen mehrerer Dateien in PHP: Warum schlägt `move_uploaded_file` fehl und wie kann man es beheben?** * **Mehrere Datei-Upload mit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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