Hallo,
ich schreibe gerade an einem Script, das mehrere Uploads gleichzeitig ermöglichen soll. U.a. prüfe ich über eine Datenbank, ob der Dateityp erlaubt ist, ob der Dateinamen schon verwendet wurde uws. Die Formularfelder kann man dynamisch in beliebiger Anzahl erzeugen. Das sieht dann im Quelltext ca. so aus:
<input name="dbfiles_file_subject1" type="text" id="dbfiles_file_subject1" />
<textarea name="dbfiles_file_description1" id="dbfiles_file_description1"></textarea>
<input name="file1" type="file" />
<input name="dbfiles_file_subject2" type="text" id="dbfiles_file_subject2" />
<textarea name="dbfiles_file_description2" id="dbfiles_file_description2"></textarea>
<input name="file2" type="file" />
usw.
Dann wird über Post ein Script aufgerufen und die Daten übergeben. Ich versuche das dann in einer Schleife zu machen und mit der Variablen $i zu arbeiten:
Allerdings werden weder die Daten übermittelt, oder eine Datei korrekt hochgeladen. In $number_uploads wird übrigens die Anzahl der Uploads angegeben. Ich glaube, dass ich mit dem Array nicht korrekt umgehe. Ich komme aber einfach nicht darauf. Was mache ich falsch?
ich schreibe gerade an einem Script, das mehrere Uploads gleichzeitig ermöglichen soll. U.a. prüfe ich über eine Datenbank, ob der Dateityp erlaubt ist, ob der Dateinamen schon verwendet wurde uws. Die Formularfelder kann man dynamisch in beliebiger Anzahl erzeugen. Das sieht dann im Quelltext ca. so aus:
<input name="dbfiles_file_subject1" type="text" id="dbfiles_file_subject1" />
<textarea name="dbfiles_file_description1" id="dbfiles_file_description1"></textarea>
<input name="file1" type="file" />
<input name="dbfiles_file_subject2" type="text" id="dbfiles_file_subject2" />
<textarea name="dbfiles_file_description2" id="dbfiles_file_description2"></textarea>
<input name="file2" type="file" />
usw.
Dann wird über Post ein Script aufgerufen und die Daten übergeben. Ich versuche das dann in einer Schleife zu machen und mit der Variablen $i zu arbeiten:
PHP:
for ($i = 1; $i <= $number_uploads; $i++) {
if ($i <= $number_uploads) {
$file.$i = $_FILES["file.$i"];
$dot = strrpos ($file_name.$i, ".") + 1;
$file_extension = substr ($file_name.$i, $dot, strlen ($file_name.$i) - $dot);
$file_date = date ("d.m.Y - H:i:s");
$sql0 = "SELECT * FROM `$dbtable5` WHERE `file_subject` = '$dbfiles_file_subject$i' OR `file_name` = '$file_name$i'";
$query0 = mysql_query ($sql0, $dbconnect);
$array0 = mysql_fetch_array ($query0);
//Soll prüfen, ob der Dateityp für das Hochladen zugelassen ist
$sql6 = "SELECT * FROM `$dbtable6` WHERE `filetype_name` = '$file_extension' AND `filetype_locked` = 'true'";
$query6 = mysql_query ($sql6);
$array6 = mysql_fetch_array ($query6);
//Soll prüfen, ob der Dateityp für das Hochladen zugelassen ist
$sql7 = "SELECT * FROM `$dbtable5` WHERE `file_subject` = '$dbfiles_file_subject$i' OR `file_name` = '$dbfiles_file_name$i' AND `category_id` = '$dbfiles_category_id$i'";
$query7 = mysql_query ($sql7, $dbconnect);
$array7 = mysql_fetch_array ($query7);
if ($array6[filetype_name] == $file_extension) {
header ("Location: ".$PHP_SELF."?module=user&content=form_upload2&number_uploads=$number_uploads&error=true&error8=true&$file_name$i");
}
elseif (($array0[file_subject] == $dbfiles_file_subject) && ($array7[file_subject] == $dbfiles_file_subject) || ($array0[file_name] == $file_name) && ($array7[file_name] == $file_name)) {
header ("Location: ".$PHP_SELF."?module=user&content=form_upload2&number_uploads=$number_uploads&error=true&error7=true");
}
else {
$sql = "INSERT INTO `$dbtable5` (`file_subject`, `file_description`, `file_name`, `file_size`, `file_extension`, `file_date`, `category_id`, `mime_type`, `upload_user_id`) VALUES ('$dbfiles_file_subject$i', '$dbfiles_file_description$i', '$file_name$i', '$file_size', '$file_extension', '$file_date', '$dbfiles_category_id$i', '$file_type', '".$array[id]."')";
mysql_query ($sql, $dbconnect);
$sql3 = "SELECT * FROM `$dbtable5` WHERE `file_name` = '$file_name' AND `file_date` = '$file_date' LIMIT 1";
$query3 = mysql_query ($sql3, $dbconnect);
$array3 = mysql_fetch_array ($query3);
if (@!move_uploaded_file ($_FILES["file"]["tmp_name"], "files/".$array3[id].".".$array3[file_extension]."")) {
header ("Location: ".$PHP_SELF."?module=user&content=form_upload2&number_uploads=$number_uploads&error=true&error6=true");
}
}
}
}
Allerdings werden weder die Daten übermittelt, oder eine Datei korrekt hochgeladen. In $number_uploads wird übrigens die Anzahl der Uploads angegeben. Ich glaube, dass ich mit dem Array nicht korrekt umgehe. Ich komme aber einfach nicht darauf. Was mache ich falsch?
Zuletzt bearbeitet: