Ich versuch mich gerade an swfUpload. Leider scheint die aufgerufene PHP nicht richtig abzulaufen. Woran kann das liegen? Es soll ein Profilbild hochgeladen werden, leider wird dieses nicht in die DB eingetragen. Der Code wird schlichtweg nicht ausgeführt. :o(
Dies ist der Code-Abschnitt, der nach dem Upload ausgeführt wird.
Ein Profilbild wird einfach mit in die Gallerie gespeichert, allerdings wird diesem kein Album zugeordnert und kann somit als Profilbild identifiziert werden.
//Hier wird das Bild in die DB gespeichert!
//Schauen wir erstmal ob der Upload ein erfolg war...
//Sessionwert löschen
unset($_SESSION['profilepic_upload_error']);
if($_FILES['file']['error'] != 0) {
//Da ist etwas schief gegangen!
//Wir speichern den Vorfall in der Session um anschließend unter dem alten Profilbild die Fehlermeldung mit anzuzeigen...
$_SESSION['profilepic_upload_error']="ulerr";
add_log_entry(
$db,
$_SESSION['userid'],
$_SERVER['REMOTE_ADDR'],
"error",$uploadphp,
"file_upload_failed",
"",date("Y-m-d H:i:s"));
exit;
}
//Sollte das Script dies überlebt haben, so fügen wir das Bild der Datenbank hinzu
//Zuerst prüfen ob bereits ein Profilbild vorliegt
$q=""; //Query geheim :P
$r=$db->query($q);
if($r) {
$rows=$r->num_rows();
if($rows==0) {
//Es existiert kein Profilbild, also INSERT
$picdate=date("Y-m-d H:i:s");
//Wir lassen einige Spalten leer, welches als Indiz für das Profilbild gilt.
$q=""; //Query geheim :P
$r=$db->query($q);
if(!$r) {
//Da ist etwas schief gegangen!
//Wir speichern den Vorfall in der Session um anschließend unter dem alten Profilbild die Fehlermeldung mit anzuzeigen...
$_SESSION['profilepic_upload_error']="dberr";
add_log_entry(
$db,
$_SESSION['userid'],
$_SERVER['REMOTE_ADDR'],
"error",$uploadphp,
"could_not_create_entry",
$db->errno.": ".$db->error,date("Y-m-d H:i:s"));
exit;
}
//Nun fragen wir die neue Bildid ab
$q="SELECT * FROM `photo_albums_pictures`
WHERE `userid` ={$_SESSION['userid']}
AND `albumid`=0";
$r=$db->query($q);
if($r) {
if($r->num_rows()>0) {
$fa=$r->fetch_assoc();
$newpicid=$fa['id'];
unset($fa); unset($r);
}
}
} else {
//Nun fragen wir die neue Bildid ab
$fa=$r->fetch_assoc();
$newpicid=$fa['id'];
unset($fa); unset($r);
}
}
//Sollte das Script dies überlebt haben, so prüfen wir das hochgeladene Bild einmal:
$image_attribs = getimagesize($_FILES['file']['tmp_name']);
$image_width = $image_attribs[0];
$image_height = $image_attribs[1];
//Ist das Format ok?
if(!($image_attribs[2]==IMAGETYPE_JPG || $image_attribs[2]==IMAGETYPE_PNG || $image_attribs[2]==IMAGETYPE_GIF)) {
//Da ist etwas schief gegangen!
//Wir speichern den Vorfall in der Session um anschließend unter dem alten Profilbild die Fehlermeldung mit anzuzeigen...
$_SESSION['profilepic_upload_error']="fmterr";
exit;
}
//Sollte das Script dies überlebt haben, so prüfen wir die Bildgröße:
//Datei zunächst verschieben
move_uploaded_file($_FILES['file']['tmp_name'],"userdata/gallery/{$newpicid}.jpg");
include("includes/functions.php"); //Funktion für verkleinern einbinden
//Wir verkleinern es auf die richtige Größe. Hat das Bild bereits die richtige Größe, so wird es einfach
//neu in einer geringeren Qualität gespeichert.
resizeImageJPG("userdata/gallery/{$newpicid}.jpg","userdata/gallery/{$newpicid}.jpg",$img_max_width,0,85);
//Jetzt noch bei personal_user
$q=""; //Query geheim :P
$r=$db->query($q);
if(!$r) {
//Da ist etwas schief gegangen!
//Wir speichern den Vorfall in der Session um anschließend unter dem alten Profilbild die Fehlermeldung mit anzuzeigen...
$_SESSION['profilepic_upload_error']="dberr";
exit;
}