Hallo allerseits...
Ich habe hier ein Script, mit dem ich mehrere Bilder auf meinen Server laden kann und die Namen der Bilder in die DB geschrieben werden. Das klappt wunderbar...
Jetzt stehe ich aber vor einem kleinem Problem:
in der DB gehört zu jedem Bild ein Vorschaubild...das bedeutet in dem Fall, das ich ich ein Bild und das Vorschaubild hochladen muss, und beides in der gleichen Zeile in die DB schreiben muss...
Und da oft einige Bilder hochgeladen werden würde ich gerne immer mehrere auf einmal hochladen können...
Hier das Originalscript für mehrere Bilder ohne Vorschaubilder:
PHP-Code:
$folder = '../images/fotos/thsteh/';
foreach ($_FILES["upfile"]["error"] as $key => $error)
{
if ($_FILES['upfile']['size'][$key] > 0)
{
$name = $_FILES["upfile"]["name"][$key];
$groesse = $_FILES["upfile"]["size"][$key];
if (file_exists($folder . '' . $name . ''))
{
echo 'Datei ' . $name . ' ist bereits vorhanden!<br /><br />';
}
else
{
move_uploaded_file
(
$_FILES["upfile"]["tmp_name"][$key],
$folder.$_FILES["upfile"]["name"][$key]
) or die("Beim Upload ist ein Problem aufgetreten");
echo 'Datei ' . $name . ' mit einer Größe von ' . $groesse . 'Kb wurde erfolgreich geladen<br /><br />';
mysql_query("SET NAMES 'utf8'");
$mysql_eingabe = "INSERT fotos_serie ";
$mysql_eingabe .= "(fotos_serie_bild) ";
$mysql_eingabe .= "VALUES ('" . $name . "')";
mysql_query($mysql_eingabe);
$num = mysql_affected_rows();
// Ausgabe ob Datensatz hinzugefügt wurde
if ($num>0)
{
echo '<br />';
echo "Datensatz hinzugefügt!<br><br>";
}
else
{
echo "Ein Fehler ist aufgetreten!<br><br>";
}
}
}
}
und hier das "gebastelte" was nicht funktioniert...ist sicherlich nur Murks bei rumgekommen:
PHP-Code:
$folder = '../images/fotos/thsteh/';
foreach ($_FILES["upfile"]["error"] as $key => $error)
{
if ($_FILES['upfile']['size'][$key] > 0)
{
$name = $_FILES["upfile"]["name"][$key];
$groesse = $_FILES["upfile"]["size"][$key];
$name_klein = $_FILES["upfile_klein"]["name"][$key];
$groesse_klein = $_FILES["upfile_klein"]["size"][$key];
if (file_exists($folder . '' . $name . ''))
{
echo 'Datei ' . $name . ' ist bereits vorhanden!<br /><br />';
}
else
{
move_uploaded_file
(
$_FILES["upfile"]["tmp_name"][$key],
$folder.$_FILES["upfile"]["name"][$key],
$_FILES["upfile_klein"]["tmp_name"][$key],
$folder.$_FILES["upfile_klein"]["name_klein"][$key]
) or die("Beim Upload ist ein Problem aufgetreten");
echo 'Datei ' . $name . ' mit einer Größe von ' . $groesse . 'Kb wurde erfolgreich geladen<br /><br />';
echo 'Datei ' . $name_klein . ' mit einer Größe von ' . $groesse_klein . 'Kb wurde erfolgreich geladen<br /><br />';
mysql_query("SET NAMES 'utf8'");
$mysql_eingabe = "INSERT fotos_serie ";
$mysql_eingabe .= "(fotos_serie_bild, fotos_serie_vorschau_bild) ";
$mysql_eingabe .= "VALUES ('" . $name . "', '" . $name_klein . "')";
mysql_query($mysql_eingabe);
$num = mysql_affected_rows();
// Ausgabe ob Datensatz hinzugefügt wurde
if ($num>0)
{
echo '<br />';
echo "Datensatz hinzugefügt!<br><br>";
}
else
{
echo "Ein Fehler ist aufgetreten!<br><br>";
}
}
}
}
hierbei bekomme ich die Fehlermeldung
Warning: Wrong parameter count for move_uploaded_file() in /www/htdocs/w009cbac/sylwia/page/admin/fotos-upload-b.php131
Beim Upload ist ein Problem aufgetreten on line
Ich habe auch mal das obere Script noch mal angehangen und [upfile] in [upfile_klein] geändert, das hat prinzipiell geklappt, nur werden dann die Vorschaubilder in neue Zeile in die DB geschrieben (ist ja logisch)...
Wäre es vielleicht möglich die ID, in die die Bilder in die DB geschrieben wurde per mysql_insert_id () in ein Array zu schreiben und später beim schreiben der Vorschaubilder in die Datei wieder auszulesen und zu benutzen? Das ist das einzige was mir jetzt noch einfällt, aber sicherlich nicht das eleganteste...
Kann jemand helfen?
Besten dank für die Hilfe...
Lapje