kompletter Ordner hochladen?

stonk

Erfahrenes Mitglied
Hallo zusammen,

Ich erstelle gerade ein Script für eine Bildergallerie. Da die sehr Benutzerfreundlich sein sollte möchte ich gerne einrichten, das der User per Webinterface seine Bilder per Klick hochladen kann (so das er sich nicht direckt mit FTP auskennen muss!)
Nun wollte ich fragen,ob es möchlich wäre, dass man einen kompletten Ordner mit Inhalt "einfach so" hochladen kann. (Auf "Durchsuchen..." Button klicken und er lädt alles hoch).
Gibt es da irgend eine Funktion mit der das möchtlich wäre?

Besten Dank für eure Antworten!!
Gruss stonk
 
Das Auswählen mehrerer Dateien oder gar ganzer Verzeichnisse ist mit einem <input>-Feld nicht möglich. Auch das Vorgeben eines bestimmten Verzeichnisses oder vollständigen Pfades ist bei <input>-Feldern unterbunden und zwar aus Sicherheitsgründen!


Versuche es einmal hiermit:
Die "Temp" Ordner müssen angepasst werden, soll auch eigentlich nur zum Verständnis sein!
HTML:
<html> 
<head> 
<title>Dateiupload</title> 
</head> 
<body> 
<p><font face="Arial, Helvetica, sans-serif" size="6">Dateiupload via HTML </font></p> 
<form action="upload.php" method="post" enctype="multipart/form-data"> 
   Dateien:<br> 
   <input type="hidden" name="MAX_FILE_SIZE" value="100000"> 
   <input name="datei[]" type="file" maxlength="100000"><br> 
   <input name="datei[]" type="file" maxlength="100000"><br> 
   <input name="datei[]" type="file" maxlength="100000"><br> 
   <input type="submit" value="Senden"> 
</form> 
</body> 
</html>
PHP:
<php
// Prüfen des Array $_FILES 
if (isset($_FILES["datei"])) 
{ 
   foreach ($_FILES["datei"] as $ids=>$dateieninfos) 
   {       
      if ($ids == "name") 
      {                   
         foreach ($dateieninfos as $id=>$info) 
         {             
            // Upload-Status          
            if ($_FILES["datei"]["error"][$id] == UPLOAD_ERR_OK) 
            {                   
               // Muster zur Überprüfung der im Dateinamen 
               // enthaltenen Zeichen (Optional) 
               $regExp = "/^[a-z_]([a-z0-9_-]*\.?[a-z0-9_-])*\.[a-z]{3,4}$/i"; 
                
               // Dateiname und Dateigrösse 
if (preg_match($regExp,$_FILES["datei"]["name"][$id]) && $_FILES["datei"]["size"][$id] > 0 && $_FILES["datei"]["size"][$id] < 100000) 
               {             
                  // Temporäre Datei in das Zielverzeichnis 
                  // des Servers verschieben. 

                  move_uploaded_file($_FILES["datei"]["tmp_name"][$id],"shots/".$_FILES["datei"]["name"][$id]); 
                   
                  // Erfolgs-Meldung                   
                  echo "<b>Datei " . $_FILES["datei"]["name"][$id] . "</b> - Erfolgreich angelegt!<br>\n"; 
               } 
               else 
               { 
echo "<b>Fehler bei " . $_FILES["datei"]["name"][$id] . "</b> - Im Dateinamen oder Dateigrössen Limit!<br>\n"; 
               } 
            } 
            else 
            {                
echo "<b>Fehler bei " . $_FILES["datei"]["name"][$id] . "</b> - Während der Übertragung aufgetreten!<br>\n"; 
            } 
         }          
      }          
   } 
} 
else 
{ 
echo "<b>Fehler</b> - Dateiupload fehlgeschlagen!"; 
} 

?>
 
Zuletzt bearbeitet:
Dank für deine Antwort!
Ich bin aber eigentlich auf der Suche nach einer Funktion wo man den kompletten Ordner und nicht nur einzelne Dateien uploaden kann! (Den kompletten Ordner mit einem Klick)
 
Wie RS9999 es bereits anspracht, ist das mit den klassischen HTML-Mitteln nicht möglich.
Du könntest die Dateien jedoch in ein Archiv packen, dies hochladen und dann wieder entpacken lassen.
 
danke! genau das wäre eine möglichkeit!!
kann ich das gerade in php machen und wenn ja wie?
sorry, mag gerade nicht googeln :)
 
Das Thema des Entpackens von Archiven mit PHP wurde in diesem Forum bereits behandelt – du musst also gar nicht unbedingt googlen.
 
Zurück