Frage zum Upload von mehreren Datein

Kerwin

Erfahrenes Mitglied
Hallo

Habe da mal ein kleines Problem.

Fast jeder kennt hier ja dieses Uploaddingsel (<input type=file ..... >). Da ist ja immer noch son netter Durchsuchenbutton dahinter wo man jedes File angeben kann.

Ich habe mir ne Fotogalerie gebastellt und wenn ich da nun pro Kategorie 100 Bilder hochseppen will, dann klicke ich mich ja dumm und dähmlich(bei 100 Bilder 300 klicks). Wie kann ich mir das ein wenig vereinfach?, sprich, das ich zum Beispiel alle markieren kann und dann hochladen.
Oder gibts noch andere Möglichkeiten?
Per FTP will ich das nicht machen, da
1. jeder Hansel da was hochladen kann(mit berechtigung)
2. Ich jedes Bild beim hochladen per uploadscript neu konvertiere, nen DB eintrag etc gemacht wir.

Ich danke im vorraus
 
Soweit ich weis, kann man nur eine Datei aus Sicherheitsgründen hochladen.
Wenn mich jetzt keiner korrigiert, sage ich dass es nur über FTP geht, mehr als eine Datei auf einmal hoch zu laden.

In diesem Sinne
 
Könnte man das nicht mit einer Schleife durchlaufen lassen? Ist nur so ein Gedanke berichtigt mich wenn ich falsch liege.

In der Form etwa:

PHP:
foreach ($POST as $feldname=>$file) { 

copy () ....... 
.......
}

Gruß Mirko
 
Ich habe es zwar selbst noch nie ausprobiert, aber man könnte auf dem Client alle Bilder in eine ZIP-Datei stecken und diese dann hochladen. Das verarbeitende PHP-Script entpackt die ZIP-Datei wieder und verschiebt die Bilder an die richtige Stelle.

@Mirko: Bei Deiner Variante kommst Du ja nicht umher, alle Formularfelder auszufüllen.

snuu
 
@Gumbo
Du hast nicht verstanden worum es hierbei geht. Genau so mache ich das zur Zeit und muss für 100 Bilder 300 Klicks machen. Will ich aber an sich net wirklich. Das Problem hierbei ist, das ich pro inputfeld nur 1 Bild bzw Datei reinhauen kann und ich für 100 halt genausoviele brauche

@Mirko D
So einfach ist das leider nicht. Es ist so wie Snuu sagt, du musst die Felder manuell durch "durschsuchen"e eingeben.
Habe auch schon probiert gehabt das filesys auszulesen wo die Bilder drin sind und wollte dann <input type="file" name="xx" value="$xx"> machen und das dann für 100 bildchen(schleife). Leider gehts nicht :/

@snu
Dein Lösungsvorschlag an sich ist gut, aber wie soll ich das auf dem Server entpacken per script?
 
Zuletzt bearbeitet:
Es gibt Funktionen, um lesend auf ZIP-Archive zuzugreifen. Das habe ich aber wie gesagt auch noch nicht ausprobiert. Es ist auch davon abhängig, wie Dein Server konfiguriert ist.

Mehr zum Thema gibt's hier:
--> http://de.php.net/zip

snuu
 
also ich hab ein upload wo ich mehr als eins angeben kann und versteh das problem net o.O ist doch easy *find*

PHP:
<?php
// Zeitbegrenzung: beachten Sie hier die Dateigroesse!
set_time_limit(3600);

$path1 = "/www/htdocs/destination/";
// maximal 4 Dateien gleichzeitig
for($i = 0; $i < 4; $i++){
	// Bildung der Variablennamen
	switch($i){
	case 0:
		$source = $_FILES['file1']['tmp_name']; 
		$source_name = $_FILES['file1']['name'];
		break;
	case 1:
		$source = $_FILES['file2']['tmp_name']; 
		$source_name = $_FILES['file2']['name'];
		break;
	case 2:
		$source = $_FILES['file3']['tmp_name']; 
		$source_name = $_FILES['file3']['name'];
		break;
	case 3:
		$source = $_FILES['file4']['tmp_name']; 
		$source_name = $_FILES['file4']['name'];
		break;
	} // end switch()
	
	$dest = $path1.$source_name;
	if(!empty($source)){
		if (!file_exists($dest)) {
			if (copy($source, $dest)) echo "<b>$source_name</b> wurde hochgeladen<br>";
			else {
				echo "<font color=red><b>error!</b><br></font>";
				echo "Die Datei \"$source_name\" Existiert bereits auf dem Server...<br>";
			}
		}
		@unlink($source);
	}
}
?>

<form method="post" enctype="multipart/form-data">
	<input type="file" name="file1">
	<input type="file" name="file2">
	<input type="file" name="file3">
	<input type="file" name="file4">
</form>

Ich hoffe das ich alles mitkopiert habe da ich es aus einem script rausgerissen habe :)
 
Zuletzt bearbeitet:
Lies Dir doch die Problematik noch einmal genau durch! Es ght darum, dass man je Upload-Feld immer nur eine Datei hochladen kann. Wenn man massig Bilder hat, dann muss man also jedes einzelne Bild auswählen, um es in ein Upload-Feld zu setzen. Ausserdem ist die Variante mit der Switch-Abfrage wohl mehr als umständlich.

snuu
 
Zurück