Upload-Formular für mehrere Dateien

ropueh

Mitglied
Hallo.
Zwei Probleme habe ich... zum einen möchte ich, dass in der galerie_upload.php in dem select "ordner" die option ausgewählt wird, die ich via get als Variable ordner übergebe.
Und als zweites möchte ich die Inputs für die Dateien als Array arrangieren, damit der Code in der zweiten Datei nicht so lang wird, wenn ich z.B. 10 Inputs in der ersten datei mache... da würde eventuell ein guter Tipp reichen, da ich nicht weiß, wie ich $_FILES['bild2']['tmp_name'] variabel mache.

Die Sufu hat mir nicht geholfen, da jeder den Upload irgendwie anders löst?!

Vielen dank schonmal.

galerie_upload.php
PHP:
<form name="form" method="post" action="galerie_upload2.php" enctype="multipart/form-data">
<?php

$pics = "/var/www/web445/html/v5/galerie/";
$verzeichnis = openDir("$pics");

$dir=opendir($pics); // Zuerst das Verzeichnis öffnen

echo "<select name=\"ordner\">\n"; 
while ($file = readDir($verzeichnis)) {
    // Höhere Verzeichnisse nicht anzeigen
     if ($file != "." && $file != "..") {
        echo "<option value=\"$file\">$file</option>\n";
         }
}

closeDir($verzeichnis); // Verzeichnis schließen

echo "</select>\n";
?>
<br>
<input type="file" name="bild" value=""><br>
<input type="file" name="bild2" value=""><br>
<input type="submit" name="submit" value="Abschicken">
</form>

galerie_upload2.php
PHP:
<?php 
include('auth.php'); 
include('config.php');

$uploaddir = "/var/www/web445/html/v5/galerie/".$ordner."/";
$flyerdir = "http:www.xxx.de/v5/galerie";

if (isset($_FILES["bild"])) {
	$filename=$_FILES["bild"]["name"]; 
	$filesize= $_FILES["bild"]["size"];
	$tmpname=$_FILES["bild"]["tmp_name"];
	$filetype=$_FILES['bild']['type'];
                $error="";


if($filesize<=200000){

if( $_FILES['bild']['error'] == 0 )
{  
if (copy($_FILES['bild']['tmp_name'], $uploaddir.$_FILES['bild']['name'])) {
	echo"danke für den upload!<br>";

} else {
   echo "upload fehlgeschlagen!\n";
}
}
}
else { echo "die datei ist einfach zu groß"; }
}

if (isset($_FILES["bild2"])) {
	$filename=$_FILES["bild2"]["name"]; 
	$filesize= $_FILES["bild2"]["size"];
	$tmpname=$_FILES["bild2"]["tmp_name"];
	$filetype=$_FILES['bild2']['type'];
                $error="";


if($filesize<=200000){

if( $_FILES['bild2']['error'] == 0 )
{  
if (copy($_FILES['bild2']['tmp_name'], $uploaddir.$_FILES['bild2']['name'])) {
	echo"danke für den upload!<br>";
} else {
   echo "upload fehlgeschlagen!\n";
}
}
}
else { echo "die datei ist zu groß"; }
}

?>
 
Super, also mit dem Array war schonmal der nötige Anstoß, danke dafür :)

Mit get komm ich aber nicht weiter... in der Ausgabe heißen dann options gleich :(

PHP:
$pics = "/var/www/web445/html/v5/galerie/";
$verzeichnis = openDir("$pics");

$dir=opendir($pics); // Zuerst das Verzeichnis öffnen

echo "hier unbedingt den Ordner auswählen<br><select name=\"ordner\">\n"; 
while ($file = readDir($verzeichnis)) {
    // Höhere Verzeichnisse nicht anzeigen
     if ($file != "." && $file != "..") {
	if ($file = $_GET['ordner']){
        echo "<option value=\"$file\" selected>$file</option>\n";
	}
else {
echo "<option value=\"$file\">$file</option>\n";
}
         }
}

closeDir($verzeichnis); // Verzeichnis schließen

echo "</select>\n";
 
Hi ropueh,
wegen deinem get-Problem:

PHP:
if ($file = $_GET['ordner']){

hier weist du der Variable $file lediglich den Wert der Variable ordner zu, die du über $_GET bekommen hast, weshalb deine options alle gleich heißen.
Es müssen für einen Vergleich, den du in einer if-Schleife ja bezweckst, 2 Gleichheitszeichen sein:

PHP:
if ($file == $_GET['ordner']){

Weiterhin solltest du folgende Zeile
PHP:
echo "<option value=\"$file\" selected>$file</option>\n";
so abändern, dass es im option-Tag selected="selected" lautet - also wie folgt

PHP:
echo "<option value=\"$file\" selected='selected'>$file</option>\n";

Hoffe ich konnte dir ein wenig helfen.
 
Zurück