function save_photo($entity_id, $tmp_file, $entity = 'quiz', $filename = 'photo', $size = 100) { $result = array('result' => false, 'error' => ''); if ($tmp_file['error'] !== 0) { $result['error'] = 'No file was upload'; return $result; } $name_arr = explode('.', $tmp_file['name']); $file_extension = array_pop($name_arr); if (!in_array(strtolower($file_extension), array('jpg', 'jpeg', 'jpe', 'gif', 'png', 'bmp'))) { @unlink($tmp_file['tmp_name']); $result['error'] = 'File upload stopped by extension'; return $result; } $old_file = he_quiz::get_photo($entity_id, $entity); if ($old_file) { $old_src = he_quiz::photo_dir() . $old_file; @unlink($old_src); } $new_file = "{$entity}_{$entity_id}.{$file_extension}"; $new_src = he_quiz::photo_dir() . $new_file; $upload = new se_upload(); $upload->new_upload($filename, 2 * 1024 * 1024, 'jpg'); $upload->upload_photo($new_src, $size, $size); switch ($entity) { case 'result': $query = he_database::placeholder("UPDATE `se_he_quiz_result` SET `photo`='?'\r\n\t\t WHERE `id`=?", $new_file, $entity_id); break; case 'question': $query = he_database::placeholder("UPDATE `se_he_quiz_question` SET `photo`='?'\r\n\t\t WHERE `id`=?", $new_file, $entity_id); break; default: $query = he_database::placeholder("UPDATE `se_he_quiz` SET `photo`='?'\r\n WHERE `quiz_id`=?", $new_file, $entity_id); break; } he_database::query($query); $result['result'] = true; return $result; }
function album_media_upload($file_name, $album_id, &$space_left) { global $database, $url, $user; // SET KEY VARIABLES $file_maxsize = $user->level_info[level_album_maxsize]; $file_exts = explode(",", str_replace(" ", "", strtolower($user->level_info[level_album_exts]))); $file_types = explode(",", str_replace(" ", "", strtolower($user->level_info[level_album_mimes]))); $file_maxwidth = $user->level_info[level_album_width]; $file_maxheight = $user->level_info[level_album_height]; $new_media = new se_upload(); $new_media->new_upload($file_name, $file_maxsize, $file_exts, $file_types, $file_maxwidth, $file_maxheight); // UPLOAD AND RESIZE PHOTO IF NO ERROR if ($new_media->is_error == 0) { // GET MAX ORDER $max = $database->database_fetch_assoc($database->database_query("SELECT max(media_order) AS max FROM se_media LEFT JOIN se_albums ON se_media.media_album_id=se_albums.album_id WHERE se_albums.album_user_id='" . $user->user_info[user_id] . "'")); $media_order = $max[max] + 1; // INSERT ROW INTO MEDIA TABLE $database->database_query("\r\n INSERT INTO se_media (\r\n media_album_id,\r\n media_date,\r\n media_order\r\n ) VALUES (\r\n '{$album_id}',\r\n '" . time() . "',\r\n '{$media_order}'\r\n )\r\n "); $media_id = $database->database_insert_id(); // CHECK IF IMAGE RESIZING IS AVAILABLE, OTHERWISE MOVE UPLOADED IMAGE if ($new_media->is_image == 1) { $file_dest = $url->url_userdir($user->user_info[user_id]) . $media_id . ".jpg"; $thumb_dest = $url->url_userdir($user->user_info[user_id]) . $media_id . "_thumb.jpg"; // UPLOAD THUMB $new_media->upload_thumb($thumb_dest, 200); // UPLOAD FILE $new_media->upload_photo($file_dest); $file_ext = "jpg"; $file_filesize = filesize($file_dest); } else { $file_dest = $url->url_userdir($user->user_info[user_id]) . $media_id . "." . $new_media->file_ext; // UPLOAD THUMB IF NECESSARY if ($new_media->file_ext == 'gif') { $thumb_dest = $url->url_userdir($user->user_info[user_id]) . $media_id . "_thumb.jpg"; $new_media->upload_thumb($thumb_dest, 200); } // MOVE FILE $new_media->upload_file($file_dest); $file_ext = $new_media->file_ext; $file_filesize = filesize($file_dest); } if (!is_numeric($file_filesize)) { $file_filesize = 0; } // CHECK SPACE LEFT if ($file_filesize > $space_left) { $new_media->is_error = 1000085; } else { $space_left = $space_left - $file_filesize; } // DELETE FROM DATABASE IF ERROR if ($new_media->is_error != 0) { $database->database_query("DELETE FROM se_media WHERE media_id='{$media_id}' AND media_album_id='{$album_id}'"); @unlink($file_dest); } else { $database->database_query("UPDATE se_media SET media_ext='{$file_ext}', media_filesize='{$file_filesize}' WHERE media_id='{$media_id}' AND media_album_id='{$album_id}' LIMIT 1"); $database->database_query("UPDATE se_albums SET album_totalfiles=album_totalfiles+1, album_totalspace=album_totalspace+'{$file_filesize}' WHERE album_id='{$album_id}' LIMIT 1"); } } // RETURN FILE STATS $file_result = array('is_error' => $new_media->is_error, 'file_name' => $_FILES[$file_name]['name'], 'media_id' => $media_id, 'media_ext' => $file_ext, 'media_filesize' => $file_filesize); return $file_result; }
function article_media_upload($file_name, $articlealbum_id, &$space_left) { global $class_article, $database, $url; // SET KEY VARIABLES $file_maxsize = $this->articleowner_level_info[level_article_album_maxsize]; $file_exts = explode(",", str_replace(" ", "", strtolower($this->articleowner_level_info[level_article_album_exts]))); $file_types = explode(",", str_replace(" ", "", strtolower($this->articleowner_level_info[level_article_album_mimes]))); $file_maxwidth = $this->articleowner_level_info[level_article_album_width]; $file_maxheight = $this->articleowner_level_info[level_article_album_height]; $new_media = new se_upload(); $new_media->new_upload($file_name, $file_maxsize, $file_exts, $file_types, $file_maxwidth, $file_maxheight); // UPLOAD AND RESIZE PHOTO IF NO ERROR if($new_media->is_error == 0) { // INSERT ROW INTO MEDIA TABLE $database->database_query("INSERT INTO se_articlemedia ( articlemedia_articlealbum_id, articlemedia_date ) VALUES ( '$articlealbum_id', '".time()."' )"); $articlemedia_id = $database->database_insert_id(); // CHECK IF IMAGE RESIZING IS AVAILABLE, OTHERWISE MOVE UPLOADED IMAGE if($new_media->is_image == 1) { $file_dest = $this->article_dir($this->article_info[article_id]).$articlemedia_id.".jpg"; $thumb_dest = $this->article_dir($this->article_info[article_id]).$articlemedia_id."_thumb.jpg"; $new_media->upload_photo($file_dest); $new_media->upload_photo($thumb_dest, 200, 200); $file_ext = "jpg"; $file_filesize = filesize($file_dest); } else { $file_dest = $this->article_dir($this->article_info[article_id]).$articlemedia_id.".".$new_media->file_ext; $new_media->upload_file($file_dest); $file_ext = $new_media->file_ext; $file_filesize = filesize($file_dest); } // CHECK SPACE LEFT if($file_filesize > $space_left) { $new_media->is_error = 1; $new_media->error_message = $class_article[1].$_FILES[$file_name]['name']; } else { $space_left = $space_left-$file_filesize; } // DELETE FROM DATABASE IF ERROR if($new_media->is_error != 0) { $database->database_query("DELETE FROM se_articlemedia WHERE articlemedia_id='$articlemedia_id' AND articlemedia_articlealbum_id='$articlealbum_id'"); @unlink($file_dest); // UPDATE ROW IF NO ERROR } else { $database->database_query("UPDATE se_articlemedia SET articlemedia_ext='$file_ext', articlemedia_filesize='$file_filesize' WHERE articlemedia_id='$articlemedia_id' AND articlemedia_articlealbum_id='$articlealbum_id'"); } } // RETURN FILE STATS $file = Array('is_error' => $new_media->is_error, 'error_message' => $new_media->error_message, 'articlemedia_id' => $articlemedia_id, 'articlemedia_ext' => $file_ext, 'articlemedia_filesize' => $file_filesize); return $file; } // END article_media_upload() METHOD
function forum_media_new($topic_id) { global $database; // SET KEY VARIABLES $forummedia_id = 0; $file_maxsize = 2048000; $file_exts = array('jpg', 'jpeg', 'gif', 'png', 'bmp'); $file_types = array('image/jpeg', 'image/pjpeg', 'image/jpg', 'image/jpe', 'image/pjpg', 'image/x-jpeg', 'image/x-jpg', 'image/gif', 'image/x-gif', 'image/png', 'image/x-png', 'image/bmp'); $file_maxwidth = 650; $file_maxheight = 1000; // START NEW UPLOAD $new_media = new se_upload(); $new_media->new_upload('post_media', $file_maxsize, $file_exts, $file_types, $file_maxwidth, $file_maxheight); // UPLOAD AND RESIZE PHOTO IF NO ERROR if ($new_media->is_error == 0) { // INSERT ROW INTO MEDIA TABLE $database->database_query("INSERT INTO se_forummedia (forummedia_forumtopic_id) VALUES ('{$topic_id}')"); $forummedia_id = $database->database_insert_id(); // CHECK IF IMAGE RESIZING IS AVAILABLE, OTHERWISE MOVE UPLOADED IMAGE if ($new_media->is_image == 1) { // MAKE SURE SUBDIRECTORY EXISTS $subdir = './uploads_forum/' . $topic_id . '/'; if (!is_dir($subdir)) { mkdir($subdir, 0777); chmod($subdir, 0777); } $file_dest = $subdir . $forummedia_id . ".jpg"; // UPLOAD FILE $new_media->upload_photo($file_dest); $file_ext = "jpg"; $file_filesize = filesize($file_dest); } else { // MAKE SURE SUBDIRECTORY EXISTS $subdir = './uploads_forum/' . $topic_id . '/'; if (!is_dir($subdir)) { mkdir($subdir, 0777); chmod($subdir, 0777); } $file_dest = $subdir . $forummedia_id . "." . $new_media->file_ext; $new_media->upload_file($file_dest); $file_ext = $new_media->file_ext; $file_filesize = filesize($file_dest); } // DELETE FROM DATABASE IF ERROR if ($new_media->is_error) { $database->database_query("DELETE FROM se_forummedia WHERE forummedia_id='{$forummedia_id}' AND forummedia_forumtopic_id='{$topic_id}'"); @unlink($file_dest); $forummedia_id = 0; // UPDATE ROW IF NO ERROR } else { $database->database_query("UPDATE se_forummedia SET forummedia_ext='{$file_ext}', forummedia_filesize='{$file_filesize}' WHERE forummedia_id='{$forummedia_id}' AND forummedia_forumtopic_id='{$topic_id}'"); } } return $forummedia_id; }
function user_photo_upload($photo_name) { global $database, $url; // ENSURE USER DIRECTORY IS ADDED $user_directory = $url->url_userdir($this->user_info['user_id']); $user_path_array = explode("/", $user_directory); array_pop($user_path_array); array_pop($user_path_array); $subdir = implode("/", $user_path_array) . "/"; if (!is_dir($subdir)) { mkdir($subdir, 0777); chmod($subdir, 0777); $handle = fopen($subdir . "index.php", 'x+'); fclose($handle); } if (!is_dir($user_directory)) { mkdir($user_directory, 0777); chmod($user_directory, 0777); $handle = fopen($user_directory . "/index.php", 'x+'); fclose($handle); } // SET KEY VARIABLES $file_maxsize = "4194304"; $file_exts = explode(",", str_replace(" ", "", strtolower($this->level_info['level_photo_exts']))); $file_types = explode(",", str_replace(" ", "", strtolower("image/jpeg, image/jpg, image/jpe, image/pjpeg, image/pjpg, image/x-jpeg, x-jpg, image/gif, image/x-gif, image/png, image/x-png"))); $file_maxwidth = $this->level_info['level_photo_width']; $file_maxheight = $this->level_info['level_photo_height']; $photo_newname = "0_" . rand(1000, 9999) . ".jpg"; $file_dest = $url->url_userdir($this->user_info['user_id']) . $photo_newname; $thumb_dest = substr($file_dest, 0, strrpos($file_dest, ".")) . "_thumb" . substr($file_dest, strrpos($file_dest, ".")); $new_photo = new se_upload(); $new_photo->new_upload($photo_name, $file_maxsize, $file_exts, $file_types, $file_maxwidth, $file_maxheight); // UPLOAD AND RESIZE PHOTO IF NO ERROR if (!$new_photo->is_error) { // DELETE OLD AVATAR IF EXISTS $this->user_photo_delete(); // UPLOAD THUMB $new_photo->upload_thumb($thumb_dest); // CHECK IF IMAGE RESIZING IS AVAILABLE, OTHERWISE MOVE UPLOADED IMAGE if ($new_photo->is_image) { $new_photo->upload_photo($file_dest); } else { $new_photo->upload_file($file_dest); } // UPDATE USER INFO WITH IMAGE IF STILL NO ERROR if (!$new_photo->is_error) { $database->database_query("UPDATE se_users SET user_photo='{$photo_newname}' WHERE user_id='{$this->user_info['user_id']}' LIMIT 1"); $this->user_info['user_photo'] = $photo_newname; } } $this->is_error = $new_photo->is_error; }
function event_media_upload($file_name, $eventalbum_id, &$space_left) { global $class_event, $database, $url; // SET KEY VARIABLES $file_maxsize = $this->eventowner_level_info['level_event_album_maxsize']; $file_exts = explode(",", str_replace(" ", "", strtolower($this->eventowner_level_info['level_event_album_exts']))); $file_types = explode(",", str_replace(" ", "", strtolower($this->eventowner_level_info['level_event_album_mimes']))); $file_maxwidth = $this->eventowner_level_info['level_event_album_width']; $file_maxheight = $this->eventowner_level_info['level_event_album_height']; $time = time(); $new_media = new se_upload(); $new_media->new_upload($file_name, $file_maxsize, $file_exts, $file_types, $file_maxwidth, $file_maxheight); // UPLOAD AND RESIZE PHOTO IF NO ERROR if (!$new_media->is_error) { // INSERT ROW INTO MEDIA TABLE $sql = "\r\n INSERT INTO se_eventmedia\r\n (eventmedia_eventalbum_id, eventmedia_date)\r\n VALUES\r\n ('{$eventalbum_id}', '{$time}')\r\n "; $resource = $database->database_query($sql); $eventmedia_id = $database->database_insert_id(); // CHECK IF IMAGE RESIZING IS AVAILABLE, OTHERWISE MOVE UPLOADED IMAGE $event_dir = $this->event_dir($this->event_info['event_id']); if ($new_media->is_image) { $file_dest = "{$event_dir}{$eventmedia_id}.jpg"; $thumb_dest = "{$event_dir}{$eventmedia_id}_thumb.jpg"; // UPLOAD THUMB $new_media->upload_thumb($thumb_dest, 200); // UPLOAD PHOTO $new_media->upload_photo($file_dest); $file_ext = "jpg"; $file_filesize = filesize($file_dest); } else { $file_dest = "{$event_dir}{$eventmedia_id}.{$new_media->file_ext}"; $thumb_dest = "{$event_dir}{$eventmedia_id}_thumb.jpg"; if ($new_media->file_ext == 'gif') { $new_media->upload_thumb($thumb_dest, 200); } $new_media->upload_file($file_dest); $file_ext = $new_media->file_ext; $file_filesize = filesize($file_dest); } // CHECK SPACE LEFT if ($space_left !== FALSE && $file_filesize > $space_left) { $new_media->is_error = 1; $new_media->error_message = $class_event[1] . $_FILES[$file_name]['name']; // TODO LANG } elseif ($space_left !== FALSE) { $space_left = $space_left - $file_filesize; } // DELETE FROM DATABASE IF ERROR if ($new_media->is_error) { $sql = "DELETE FROM se_eventmedia WHERE eventmedia_id='{$eventmedia_id}' AND eventmedia_eventalbum_id='{$eventalbum_id}'"; $resource = $database->database_query($sql); @unlink($file_dest); } else { $sql = "UPDATE se_eventmedia SET eventmedia_ext='{$file_ext}', eventmedia_filesize='{$file_filesize}' WHERE eventmedia_id='{$eventmedia_id}' AND eventmedia_eventalbum_id='{$eventalbum_id}'"; $resource = $database->database_query($sql); if (!is_numeric($file_filesize)) { $file_filesize = 0; } $sql = "UPDATE se_eventalbums SET eventalbum_totalfiles=eventalbum_totalfiles+1, eventalbum_totalspace=eventalbum_totalspace+'{$file_filesize}' WHERE eventalbum_id='{$eventalbum_id}' LIMIT 1"; $resource = $database->database_query($sql); } } // IF ERROR if ($new_media->is_error) { $new_media->error_message = $_FILES[$file_name]['name'] . " - " . SE_Language::get($new_media->is_error); } // RETURN FILE STATS return array('is_error' => $new_media->is_error, 'error_message' => $new_media->error_message, 'file_name' => $_FILES[$file_name]['name'], 'eventmedia_id' => $eventmedia_id, 'eventmedia_ext' => $file_ext, 'eventmedia_filesize' => $file_filesize); }
function he_wall_pages_photo_upload($pages_id) { global $user, $misc, $setting; $max_filesize = 8 * 1024 * 1024; $file_exts = array('jpg', 'jpeg', 'gif', 'png'); $file_types = array('image/jpeg', 'image/jpg', 'image/jpe', 'image/pjpeg', 'image/pjpg', 'image/x-jpeg', 'x-jpg', 'image/gif', 'image/x-gif', 'image/png', 'image/x-png'); $width = 500; //TODO $height = 500; $thumb_width = 70; $thumb_height = 70; $new_upload = new se_upload(); $he_upload = new he_upload($user->user_info['user_id'], 'pages_photo'); $new_upload->new_upload('wall_photo', $max_filesize, $file_exts, $file_types); if ($new_upload->is_error) { $result = array('result' => 0, 'error' => SE_Language::get($new_upload->is_error)); } else { $upload_id = $he_upload->new_upload($pages_id); $file_name = "{$he_upload->instance_type}_{$upload_id}.{$new_upload->file_ext}"; $file_thumb = "{$he_upload->instance_type}_{$upload_id}_thumb.{$new_upload->file_ext}"; $file_thumb_path = "./uploads_pages/{$file_thumb}"; $new_upload->upload_photo($file_thumb_path, $thumb_width, $thumb_height); $new_upload->upload_photo("./uploads_pages/{$file_name}", $width, $height); $media_width = $misc->photo_size($file_thumb_path, $thumb_width, $thumb_height, "w"); $media_height = $misc->photo_size($file_thumb_path, $thumb_width, $thumb_height, "h"); if ($new_upload->is_error) { $he_upload->delete_upload($upload_id); $result = array('result' => 0, 'error' => SE_Language::get($new_upload->is_error)); } else { $he_upload->save_upload($upload_id, $file_name); $result = array('result' => 1, 'media_path' => $file_thumb_path, 'media_width' => $media_width, 'media_height' => $media_height); } } return $result; }
function group_media_upload($file_name, $groupalbum_id, &$space_left) { global $database, $url, $user; // SET KEY VARIABLES $file_maxsize = $this->groupowner_level_info['level_group_album_maxsize']; $file_exts = explode(",", str_replace(" ", "", strtolower($this->groupowner_level_info['level_group_album_exts']))); $file_types = explode(",", str_replace(" ", "", strtolower($this->groupowner_level_info['level_group_album_mimes']))); $file_maxwidth = $this->groupowner_level_info['level_group_album_width']; $file_maxheight = $this->groupowner_level_info['level_group_album_height']; $new_media = new se_upload(); $new_media->new_upload($file_name, $file_maxsize, $file_exts, $file_types, $file_maxwidth, $file_maxheight); // UPLOAD AND RESIZE PHOTO IF NO ERROR if ($new_media->is_error == 0) { // INSERT ROW INTO MEDIA TABLE $database->database_query("\r\n INSERT INTO se_groupmedia (\r\n groupmedia_groupalbum_id,\r\n groupmedia_user_id,\r\n groupmedia_date\r\n ) VALUES (\r\n '{$groupalbum_id}',\r\n '{$user->user_info['user_id']}',\r\n '" . time() . "'\r\n )\r\n "); $groupmedia_id = $database->database_insert_id(); // CHECK IF IMAGE RESIZING IS AVAILABLE, OTHERWISE MOVE UPLOADED IMAGE if ($new_media->is_image == 1) { $file_dest = $this->group_dir($this->group_info['group_id']) . $groupmedia_id . ".jpg"; $thumb_dest = $this->group_dir($this->group_info['group_id']) . $groupmedia_id . "_thumb.jpg"; // UPLOAD THUMB $new_media->upload_thumb($thumb_dest, 200); // UPLOAD FILE $new_media->upload_photo($file_dest); $file_ext = "jpg"; $file_filesize = filesize($file_dest); } else { $file_dest = $this->group_dir($this->group_info['group_id']) . $groupmedia_id . "." . $new_media->file_ext; $thumb_dest = $this->group_dir($this->group_info['group_id']) . $groupmedia_id . "_thumb.jpg"; // UPLOAD THUMB IF NECESSARY if ($new_media->file_ext == 'gif') { $thumb_dest = $this->group_dir($this->group_info['group_id']) . $groupmedia_id . "_thumb.jpg"; $new_media->upload_thumb($thumb_dest, 200); } $new_media->upload_file($file_dest); $file_ext = $new_media->file_ext; $file_filesize = filesize($file_dest); } // CHECK SPACE LEFT if ($file_filesize > $space_left) { $new_media->is_error = 2000250; } else { $space_left = $space_left - $file_filesize; } // DELETE FROM DATABASE IF ERROR if ($new_media->is_error) { $database->database_query("DELETE FROM se_groupmedia WHERE groupmedia_id='{$groupmedia_id}' AND groupmedia_groupalbum_id='{$groupalbum_id}'"); @unlink($file_dest); } else { $sql = "UPDATE se_groupmedia SET groupmedia_ext='{$file_ext}', groupmedia_filesize='{$file_filesize}' WHERE groupmedia_id='{$groupmedia_id}' AND groupmedia_groupalbum_id='{$groupalbum_id}'"; $resource = $database->database_query($sql); // UPDATE PARENT TABLE ROW if (!is_numeric($file_filesize)) { $file_filesize = 0; } $sql = "UPDATE se_groupalbums SET groupalbum_totalfiles=groupalbum_totalfiles+1, groupalbum_totalspace=groupalbum_totalspace+'{$file_filesize}' WHERE groupalbum_id='{$groupalbum_id}' LIMIT 1"; $resource = $database->database_query($sql); } } // RETURN FILE STATS $file_result = array('is_error' => $new_media->is_error, 'file_name' => $_FILES[$file_name]['name'], 'groupmedia_id' => $groupmedia_id, 'groupmedia_ext' => $file_ext, 'groupmedia_filesize' => $file_filesize); return $file_result; }