Guten Morgen,
ich hab ein kleines Problem mit meinem Bilder Upload, mein Script sieht derzeit so aus:
$files = array();
foreach ($_FILES['bild'] as $k => $l) {
foreach ($l as $i => $v) {
if (!array_key_exists($i, $files))
$files[$i] = array();
$files[$i][$k] = $v;
}
}
foreach ($files as $pos=>$file) {
$sql = mysql :: instance();
$_SESSION["form_data"] = $_POST;
$sql->table('user_alben_bilder')->data($_POST)
->ignore(array('abschicken'))
->checkRequiredFields()
->callback(
function($data){
if(count($data->error))
return;
$upload = upload :: instance($_FILES['bild']);
$token = helper :: instance() -> token('bild_',1,'32');
if($upload->uploaded){
$upload->file_new_name_body = $token;
$upload->process('media/bilder/gross/');
if($upload->processed){
$data->data('bild',$upload->file_dst_name);
$upload->file_new_name_body = $token;
$upload->image_resize = true;
$upload->image_x = 100;
$upload->image_ratio_y = true;
$upload->process('media/bilder/klein/');
$upload->clean();
}
}
}
)
->callback(
function($data){
$profil = mysql::instance()->UserDaten()->user_id;
$album = $_GET['album'];
$data->data('uab_ip',$_SERVER['REMOTE_ADDR'])
->data('uab_albenID',$album)
->data('uab_userID',$profil);
}
)
->insert();
}
Folgende Felder werden RICHTIG eingetragen:
- uab_ip
- uab_albenID
- uab_userID
Das Feld bild bleibt leer, es wird auch kein Bild in den Ordner geschoben. Schau ich mir die Log Datei an, sehe ich diesen Eintrag:
[Fri Apr 25 10:18:32 2014] [error] [client 78.48.xxx.xxx] PHP Warning: mime_content_type(): Can only process string or stream arguments in /data/www/b1/xxx/html/WebSeite/include/classes/upload.class.php on line 2866, referer: xxx
[Fri Apr 25 10:18:32 2014] [error] [client 78.48.xxx.xxx] PHP Warning: getimagesize() expects parameter 1 to be string, array given in /data/www/b1/xxx/html/WebSeite/include/classes/upload.class.php on line 2886, referer: xxx
[Fri Apr 25 10:18:32 2014] [error] [client 78.48.xxx.xxx] PHP Warning: preg_match() expects parameter 2 to be string, array given in /data/www/b1/xxx/html/WebSeite/include/classes/upload.class.php on line 2913, referer: xxx
Hat wohl etwas mit meiner Schleife zu tun. Nehme ich diese wieder raus, sprich diese Zeilen:
$files = array();
foreach ($_FILES['bild'] as $k => $l) {
foreach ($l as $i => $v) {
if (!array_key_exists($i, $files))
$files[$i] = array();
$files[$i][$k] = $v;
}
}
foreach ($files as $pos=>$file) {
}
läuft das Script wieder brav durch. Seht ihr zufällig den Fehler?