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
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.
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.
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 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!