[HTML, PHP] Mehrfacher Datei Upload

Drucken
( 1 Vote )
Hauptkategorie: Programmieren Kategorie: PHP
Erstellt am 15.05.2012 Zuletzt aktualisiert am 15.05.2012 Geschrieben von Jonny132
Leider gibt es in Browsern die Beschränkung, dass bei einem Dateiupload jeweils nur eine Datei pro Input FileTag hochgeladen werden kann. Der einzige Umweg den es bisher gegeben hat, ist dieses Problem Clientseitig z.B. mit Java oder Flash umzugehen, welche jedoch entweder nicht installiert oder aus Sicherheitsgründen deaktiviert sein können.

Input File Multiple

Die Browser FireFox und Safari (Stand 15.05.12) bieten für dieses Problem nun eine Alternative mehrere Dateien aufeinmal, auswählen zu können, mit dem normalen Input Tag. Zusätzlich muss man das Input-Tag mit der Eigenschaft Multiple ausstatten, um dem Browserdialog mitzuteilen, dass mehrere Dateien ausgewählt werden dürfen.

Beispiel:
<form action="uploadmultiple.php" method="post" enctype="multipart/form-data">
  <input type="file" multiple="multiple" name="files[]" id="files"   />
</form>
Was ihr hier beachten müsst, ist dass ihr im Form-Tag den enctype korrekt angebt und die Name-Eigenschaft des Input feldes am Ende eine eckige Klammer besitzt. Dies muss gemacht werden, damit wir die Werte später per PHP auslesen können.

Verarbeiten der Dateien mittels PHP:
if(count($_FILES['uploads']['files']))
{
  foreach ($_FILES['uploads']['files'] as $file)
  {
    echo $file;
  }
}
In der If-Abfrage überprüfen wir zuerst ob auch wirklich eine Datei ausgewählt wurde. Da PHP für jedes File einen Arrayeintrag generiert, iterieren wir über dieses Array und geben die Daten der Datei per echo aus. Die Variable $file können Sie nun genau so verwenden, als wie wenn sie einen einfachen Dateiupload hätten.

Veröffentlichen Sie ihre Kommentare ...