Hallo Community!
Ich habe ein Problem mit meinem Bilderupload. Ich versuche mehrere Auswahlfelder in meinem Formular einzubauen und habe deshalb in meiner MySQL Datenbank mehrere Felder eingefügt, die ein Bild enthalten dürfen
(img1_type, img2_type, img3_type,img4_type und img_type).
Daraufhin habe ich dann meinen Code so angepasst (ads_controller.php):
Dann habe ich mein Formular so bearbeitet (add.tpl):
Aber irgendwie funktioniert mein Upload nur mit einem Bild.Selbst wenn ich 3 Bilder einfüge, dann wird das 2. davon eingefügt. Trage ich nur 2 Bilder ein, erscheint dass Bild, dass ich als erstes eingefügt habe.
Was stimmt hier nicht? Habe ich etwas übersehen? Leider konnte ich im Forum und in Google nichts finden, oder hab einfch falsch gesucht -.-
Ich hoffe jemand kann mir hier helfen...
Liebe Grüße
regi
Ich habe ein Problem mit meinem Bilderupload. Ich versuche mehrere Auswahlfelder in meinem Formular einzubauen und habe deshalb in meiner MySQL Datenbank mehrere Felder eingefügt, die ein Bild enthalten dürfen
(img1_type, img2_type, img3_type,img4_type und img_type).
Daraufhin habe ich dann meinen Code so angepasst (ads_controller.php):
PHP:
//MySQL inserts
if($_FILES['file']['tmp_name'])
{
switch ( $_FILES['file']['type'] )
{
case "image/gif":
$this->data['Ad']['img_type'] = "gif";
break;
case "image/jpeg":
$this->data['Ad']['img_type'] = "jpeg";
break;
case "image/png":
$this->data['Ad']['img_type'] = "png";
break;
case "image/jpg":
$this->data['Ad']['img_type'] = "jpg";
break;
default:
$this->data['Ad']['img_type'] = "";
break;
}//end switch
}//end if
if($_FILES['file3']['tmp_name'])
{
switch ( $_FILES['file3']['type'] )
{
case "image/gif":
$this->data['Ad']['img1_type'] = "gif";
break;
case "image/jpeg":
$this->data['Ad']['img1_type'] = "jpeg";
break;
case "image/png":
$this->data['Ad']['img1_type'] = "png";
break;
case "image/jpg":
$this->data['Ad']['img1_type'] = "jpg";
break;
default:
$this->data['Ad']['img1_type'] = "";
break;
}//end switch
}//end if
//and file upload
$root = WWW_ROOT;
if($_FILES['file']['tmp_name'])
{
switch ( $_FILES['file']['type'] )
{
case "image/gif":
move_uploaded_file($_FILES['file']['tmp_name'], $root."upload/".$last_id.".gif");
chmod ($root."upload/".$last_id.".gif", 0755);
break;
case "image/jpeg":
move_uploaded_file($_FILES['file']['tmp_name'], $root."upload/".$last_id."_full.jpeg");
chmod ($root."upload/".$last_id.".jpeg", 0755);
chmod ($root."upload/".$last_id."_full.jpeg", 0755);
break;
case "image/png":
move_uploaded_file($_FILES['file']['tmp_name'], $root."upload/".$last_id."_full.png");
chmod ($root."upload/".$last_id."_full.png", 0755);
chmod ($root."upload/".$last_id.".png", 0755);
break;
default:
$this->set("error","2"); //File not allowed
break;
}
}
if(isset($_FILES['file3']['tmp_name']))
{
switch ( $_FILES['file3']['type'] )
{
case "image/jpg":
move_uploaded_file($_FILES['file3']['tmp_name'], $root."upload/".$last_id.".jpg");
chmod ($root."upload/".$last_id.".jpg", 0755);
break;
case "image/gif":
move_uploaded_file($_FILES['file3']['tmp_name'], $root."upload/".$last_id.".gif");
chmod ($root."upload/".$last_id.".gif", 0755);
break;
case "image/png":
move_uploaded_file($_FILES['file']['tmp_name'], $root."upload/".$last_id."_full.png");
chmod ($root."upload/".$last_id."_full.png", 0755);
chmod ($root."upload/".$last_id.".png", 0755);
break;
default:
$this->set("error","2"); //File not allowed
break;
}
}
Dann habe ich mein Formular so bearbeitet (add.tpl):
Code:
<form method="post" enctype="multipart/form-data" name="form" action="{$html->url('/ads/add')}"/>
<input type="hidden" value="500000" name="max_file_size" />
<input type="file" style="width: 250px;" name="file" /><br/>
<input type="hidden" value="500000" name="max_file_size" />
<input type="file" style="width: 250px;" name="file3" /><br/>
<font color="#888888">nur GIF-, JPG- und PNG-Bilder mit max. 200 KB</font>
Aber irgendwie funktioniert mein Upload nur mit einem Bild.Selbst wenn ich 3 Bilder einfüge, dann wird das 2. davon eingefügt. Trage ich nur 2 Bilder ein, erscheint dass Bild, dass ich als erstes eingefügt habe.
Was stimmt hier nicht? Habe ich etwas übersehen? Leider konnte ich im Forum und in Google nichts finden, oder hab einfch falsch gesucht -.-
Ich hoffe jemand kann mir hier helfen...
Liebe Grüße
regi