Loading...   Upload Image

Multi Datei-UploadTutorials » PHP/MySQL Tutorials » Multi Datei-Upload

Verfasst von Alice am 14.09.2009 - wurde schon 10615 mal gelesen

Kategorie: PHP/MySQL
Bewertung:
7x bewertet
Schwierigkeit: einfach
Kommentare: [ 10 ]

Tag - Schlagwort Upload Tag - Schlagwort Datei Tag - Schlagwort PHP Tag - Schlagwort Script Tag - Schlagwort Files

Multi Datei-Upload - Tutorial

Es taucht oefter mal die Frage auf, wie man mehrere Dateien auf einmal hochladen kann, deshalb moechte ich euch hier zeigen, wie man sowas umsetzen koennte ...

Beispiel anschauen

Step 1 - Uploadformular


Wir benoetigen ein Formular, in dem die Dateien ausgewaehlt werden koennen, die hochgeladen werden sollen.
Dateien auswaehlen




Step 2 - Javascript


Unser Formular benoetigt noch ein kleines Schnippselchen Java-Script, welches uns ermoeglicht so viele <input> Felder zu erstellen, wie Dateien hochgeladen werden sollen, der Code des Java-Scripts sollte in den Head-Bereich der Seite gepackt werden.


Step 3 - PHP Teil


Jetzt haben wir zwar ein Formular, dass es uns ermoeglicht mehrere Dateien auszuwaehlen, es fehlt noch der PHP-Code der die Formulardaten verarbeitet...
 $value){
			
				//  Dateigroesse pruefen => Datei darf nicht groesser als 100 000 Bytes sein (1024 byte = 1 kB)	
				if ($_FILES['datei']['size'][$key] > 0 && $_FILES["file"]["size"] < 100000){
				
					// definiert wohin die Datei muss
					$uploadfile = $uploaddir."/".basename($_FILES['datei']['name'][$key]);
				
					// Datei in angegebenes Verzeichnis verschieben
		 			if (move_uploaded_file($_FILES['datei']['tmp_name'][$key], $uploadfile)){ 
						echo "".$value ." wurde erfolgreich hochgeladen 
\n"; } } // close dateigroesse }// close foreach }// close datei angegeben } // close submit ?>

Als erstes pruefen wir ob der Hochladen Button gedrueckt wurde.

Anschliessend pruefen wir ob ueberhaupt eine Datei angegeben wurde

$uploaddir = "files"; definiert das Verzeichnis in das die Dateien gespeichert werden sollen

Mittels foreach($_FILES['datei']['name'] as $key => $value){ durchlaufen wir das Array datei[], das all unsere Dateien enthaelt, welches wir vom Formular uebergeben bekommen haben.

Mittels if ($_FILES['datei']['size'][$key] > 0 && $_FILES["file"]["size"] < 100000){ pruefen wir die Dateigroesse, die jeweils hochgeladene Datei darf nicht groesser als 100 000 Bytes sein

Mit move_uploaded_file($_FILES['datei']['tmp_name'][$key], $uploadfile verschieb die Datei dann jeweils immer in unser in $uploaddir Verzeichnis


Wichtig


Der Ordner, in den die Dateien hochgeladen werden sollen, MUSS mit CHMOD 755 ausgestattet sein, sonst lassen sich die Dateien nich hochladen.


Das war dann auch schon alles ...

Anwendunggsbeispiel mit Passwortschutz:





Grafixx Multi Datei-Upload










nicht eingeloggt if(isset($_POST['submit_login'])) { // wenn supbit gedrueckt $login_name = strip_tags($_POST['log_user']); // Variable definieren $login_pass = strip_tags($_POST['log_pass']); // Variable definieren if(empty($login_name) OR empty($login_pass)) { // Pruefen ob Username angegeben wurde $message .= 'Bitte geben Sie ihren Usernamen und das Passwort ein ...
'; $error = "1"; } if($login_name != $grafixx_name OR $login_pass != $grafixx_pass){ // Angaben auf Korrektheit pruefen $message .= 'Zugriff verweigert ...
'; $error = "1"; } if($error != "1"){ // Wenn kein Fehler war // session handle----------------------------- $_SESSION['login'] = $_SERVER['REMOTE_ADDR']; // Session setzen header("Location: $pfad"); // Weiterleiten } if($error == "1"){ // Fehlermeldung ausgeben wenn vorhanden echo "

Error ...

\n

$message

\n"; } } // Login Formular ausgeben ?>
Grafixx Login


eingeloggt if (isset($_POST['sendfiles'])){ // Sofern auf hochladen geklickt wurde if(!empty($_FILES['datei']['tmp_name'])){ // Pruefen ob Datei angegeben wurde $uploaddir = "files"; //Verzeichnis in das die Dateien gespeichert werden sollen foreach($_FILES['datei']['name'] as $key => $value){ // Dateigroesse pruefen => Datei darf nicht groesser als 100 000 Bytes sein (1024 byte = 1 kB) if ($_FILES['datei']['size'][$key] > 0 && $_FILES["file"]["size"] < 100000) { // definiert wohin die Datei muss $uploadfile = $uploaddir."/".basename($_FILES['datei']['name'][$key]); // Datei in angegebenes Verzeichnis verschieben if (move_uploaded_file($_FILES['datei']['tmp_name'][$key], $uploadfile)){ echo "- ".$value ." wurde erfolgreich hochgeladen
\n"; } } // close dateigroesse }// close foreach }// close datei angegeben }else{// Upload Formular ausgeben ?>
Dateien auswaehlen




Wichtig


Bitte bedenken, dass nicht zu viele Dateien auf einmal hochgeladen werden sollten, zu viele groesse Dateien koennten zu Problemen fuehren, jeh nach Serverkonfiguration.


Tutorial Dateien herunterladen

Kommentar schreibenHinterlasse einen Kommentar

Du musst angemeldet sein, um einen Kommentar zu hinterlassen...

Du bist noch kein Mitglied von Alice-Grafixx.de?
Dann kannst du dich hier kostenlos registrieren ...


Affiliates:   Chibi Graphics  •   The Seduction  •   Design Grafixx  •   Pat DG  •   Blue-Graphics  •   Gallery Yuri  •   Colorful Gfx  • Show all ...
designenlassen.de - Der Design-Marktplatz für Webdesign, Logo-Design, Flyerdesign u.v.m.        ALL-INKL.COM - Webhosting Server Hosting Domain Provider