$MAX_LARGE_IMAGE_FILESIZE) { $cmd = "convert -define jpeg:extent=$MAX_LARGE_IMAGE_FILESIZE_STR $incoming_filename $large_filename"; shell_exec($cmd); unlink($incoming_filename); // törlés az incoming-ból } else { //...ha nem volt túl nagy a fájl shell_exec("mv $incoming_filename $large_filename"); } // bélyegkép elkészítése $thumb_filename = THUMBNAIL_DIR . DIRECTORY_SEPARATOR . $final_filename; $cmd = "convert -define jpeg:extent=$MAX_THUMB_IMAGE_FILESIZE_STR -resize \"$THUMB_IMAGE_LARGEST_DIM>\" $large_filename $thumb_filename"; shell_exec($cmd); // átlagszín kiszámítása $cmd = "convert $thumb_filename -resize 1x1\! -format \"rgb(%[fx:int(255*r+.5)],%[fx:int(255*g+.5)],%[fx:int(255*b+.5)])\" info:-"; $color_mean = shell_exec($cmd); // beírás az adatbázisba global $dbconn; //echo mysqli_error($dbconn); $img_info = getimagesize($thumb_filename); $author = mysqli_real_escape_string($dbconn, $artwork_details["author"]); $title = mysqli_real_escape_string($dbconn, $artwork_details["title"]); $desc = mysqli_real_escape_string($dbconn, $artwork_details["desc"]); $uid = md5_file($thumb_filename); // valami random... $aspect_ratio = $img_info[0] / $img_info[1]; $query = "INSERT INTO publish_table (Author,Title,Description,Image_FileName,AspectRatio,ColorMean,Approved,UID,TS) VALUES('$author', '$title', '$desc', '$final_filename', $aspect_ratio, '$color_mean', TRUE, '$uid', CURRENT_TIMESTAMP);"; $res = mysqli_query($dbconn, $query); // megnézzük, hogy volt-e már ilyen kép feltöltve if ($res === false) { unlink($large_filename); unlink($thumb_filename); return -1; } return 0; } /* $accented_chars = explode(",","ç,æ,œ,á,é,í,ó,ú,à,è,ì,ò,ù,ä,ë,ï,ö,ü,ÿ,â,ê,î,ô,û,å,e,i,ø,u"); $accented_alternatives = explode(",","c,ae,oe,a,e,i,o,u,a,e,i,o,u,a,e,i,o,u,y,a,e,i,o,u,a,e,i,o,u"); $title = $artwork_details["title"]; $title_conforming = str_replace(" ", "_", $title); $title_conforming = strtolower($title_conforming); $title_conforming = str_replace($accented_chars, $accented_alternatives, $title_conforming);*/ // általános információk lekérése function get_general_info() { global $dbconn; $info = []; // összes kép számának lekérdezése $query = "SELECT COUNT(No) FROM publish_table WHERE Approved;"; $ret = (int)mysqli_query($dbconn, $query)->fetch_assoc()["COUNT(No)"]; $info["total_artwork_count"] = $ret; // bélyegképek hosszabb oldalának nagysága $info["thumb_largest_side"] = THUMB_LARGEST_SIDE; return $info; } // egy adagnyi képinformáció szolgáltalása function get_batch($offset, $n) { global $dbconn; $batch = []; // kívánt mennyiségű képinformáció lekérdezése $query = "SELECT Image_FileName,AspectRatio,ColorMean,Author,Title,Description,UID FROM publish_table WHERE Approved ORDER BY No DESC Limit $n OFFSET $offset;"; $ret = mysqli_query($dbconn, $query); while (($row = $ret->fetch_assoc()) != NULL) { $batch[] = $row; } return $batch; } // az utolsó ismert UID-óta keletkezett sorokat kéri le function get_update_batch($last_uid) { global $dbconn; $batch = []; // az utolsó UID óta érkezett sorok kiválogatása $query = "SELECT Image_FileName,AspectRatio,ColorMean,Author,Description,Title,UID FROM publish_table WHERE No > (SELECT No FROM publish_table WHERE UID = '$last_uid')"; $ret = mysqli_query($dbconn, $query); while (($row = $ret->fetch_assoc()) != NULL) { $batch[] = $row; } return $batch; } // ------------------------------------ if (!isset($_POST["action"])) { exit(0); } $action = only_alpha_numeric($_POST["action"]); $ret = -1; // parancs kiválasztása switch ($action) { case "upload": // fájl feltöltése if (isset($_FILES["image"]) && $_FILES["image"]["error"] === 0) { $ret = process_uploaded_file($_FILES["image"]); } break; case "publish": // kép publikálása if (isset($_POST["details"])) { $details = json_decode($_POST["details"], true); $ret = publish_image($details); } break; case "general_info": // általános információ lekérése $ret = json_encode(get_general_info()); break; case "batch": // egy adagnyi kép lekérése if (isset($_POST["offset"]) && isset($_POST["n"])) { $ret = json_encode(get_batch($_POST["offset"], $_POST["n"])); } break; case "update": // új képek betöltése if (isset($_POST["last_uid"])) { $ret = json_encode(get_update_batch(json_decode($_POST["last_uid"]))); } break; } // válasz küldése echo $ret; mysqli_close($dbconn);