Exemple #1
0
/**
 * Master function for uploading, checks filenames and generates thumbnails
 */
function upload($file, $dir = 'uploads')
{
    $filename = check_filename($file['name'], $dir);
    // Pop the original file in /uploads/originals
    move_uploaded_file($file['tmp_name'], $dir . '/originals/' . $filename);
    // Generate thumbnail
    upload_file($filename, $file['type'], 100, 100, 'thumbnails', $dir);
    // Generate stream image
    upload_file($filename, $file['type'], 350, 500, 'stream', $dir);
    return $filename;
}
Exemple #2
0
     }
     $action = 'backup';
 }
 if (isset($_GET['run_update'])) {
     $file = 'update/' . $_GET['run_update'];
     if (check_filename($_GET['run_update']) && file_exists($file)) {
         $update_file = $_GET['run_update'];
         $action = 'run_update';
     } else {
         $errors[] = 'error_file_doesnt_exist';
         $smarty->assign('errors', $errors);
         $action = 'update';
     }
 }
 if (isset($_POST['update_file_submit'])) {
     if ($_POST['update_file_submit'] == '' || !file_exists('update/' . $_POST['update_file_submit']) || !check_filename($_POST['update_file_submit'])) {
         $errors[] = 'error_file_doesnt_exist';
         $smarty->assign('errors', $errors);
         $action = 'update';
     }
     if (empty($errors)) {
         if (empty($_POST['update_password']) || $_POST['update_password'] == '') {
             $errors[] = 'error_password_wrong';
         }
         if (empty($errors)) {
             $result = mysql_query("SELECT user_pw FROM " . $db_settings['userdata_table'] . " WHERE user_id=" . intval($_SESSION[$settings['session_prefix'] . 'user_id']) . " LIMIT 1", $connid) or raise_error('database_error', mysql_error());
             if (mysql_num_rows($result) != 1) {
                 raise_error('database_error', mysql_error());
             }
             $data = mysql_fetch_array($result);
             if (!is_pw_correct($_POST['update_password'], $data['user_pw'])) {
 public static function newGame($dungeon_name, $entrance_nr = null)
 {
     $filename = check_filename("./dungeons/", $dungeon_name . ".json");
     $game = new Game();
     apply_arr(json_decode(file_get_contents($filename)), $game);
     $game->username = $_SESSION["user"]->name;
     $entrance = $game->getEntrance($entrance_nr);
     $game->stats["x"] = $entrance->x;
     $game->stats["y"] = $entrance->y;
     $game->json_data = json_encode($game);
     $id = $GLOBALS["db"]->insert("games", $game);
     $game->id = $id;
     $game->save();
 }
function make_resolution($param)
{
    // Imagetype
    $type = exif_imagetype(UPLOAD_PATH . $param['filename']);
    switch ($type) {
        case IMAGETYPE_JPEG:
            $type = 'jpg';
            break;
        case IMAGETYPE_PNG:
            $type = 'png';
            break;
        case IMAGETYPE_GIF:
            $type = 'gif';
            break;
        case IMAGETYPE_BMP:
            $type = 'bmp';
            break;
    }
    if ($param['original']) {
        $filename = $param['id'] . '_' . $param['width'] . '_' . $param['height'] . '.' . $type;
        if (copy(UPLOAD_PATH . $param['filename'], UPLOAD_PATH . $param['id'] . '_' . $param['width'] . '_' . $param['height'] . '.' . $type)) {
            unlink(UPLOAD_PATH . $param['filename']);
            //check if the resolution exists
            $query = 'SELECT NULL FROM ' . WALLPAPERS_RES . ' WHERE resolution_w = ' . $param['width'] . ' AND resolution_h = ' . $param['height'];
            $result = mysql_query($query) or report_sql_error($query, __FILE__, __LINE__);
            if (mysql_num_rows($result) == 0) {
                //insert the new resolution
                $query = 'INSERT INTO ' . WALLPAPERS_RES . '(resolution_w, resolution_h, scale) VALUES(' . $param['width'] . ', ' . $param['height'] . ', ' . round($param['width'] / $param['height'], 2) . ')';
                mysql_query($query) or report_sql_error($query, __FILE__, __LINE__);
            }
            $query = 'INSERT INTO ' . WALLPAPERS_RES_RELATION . '(pid, resolution_pid)
			SELECT ' . $param['id'] . ', id
			FROM ' . WALLPAPERS_RES . '
			WHERE resolution_w = ' . $param['width'] . ' AND resolution_h = ' . $param['height'] . ' LIMIT 1';
            mysql_query($query) or report_sql_error($query, __FILE__, __LINE__);
            return $filename;
        } else {
            return 'Kunde inte skapa filen. Det nya filnamnet:' . $filename . ' <br />Originalfilen: ' . UPLOAD_PATH . $param['filename'];
        }
    } else {
        // Load
        $new_image = imagecreatetruecolor($param['new_width'], $param['new_height']);
        switch ($type) {
            case 'jpg':
                $source = imagecreatefromjpeg(UPLOAD_PATH . $param['filename']);
                break;
            case 'png':
                $source = imagecreatefrompng(UPLOAD_PATH . $param['filename']);
                break;
            case 'gif':
                $source = imagecreatefromgif(UPLOAD_PATH . $param['filename']);
                break;
            case 'bmp':
                $source = imagecreatefromwbmp(UPLOAD_PATH . $param['filename']);
                break;
        }
        // Resize
        imagecopyresized($new_image, $source, 0, 0, 0, 0, $param['new_width'], $param['new_height'], $param['width'], $param['height']);
        // Filename
        if ($param['new_width'] == 120) {
            $param['new_width'] = 'thumb';
            $param['new_height'] = '';
        } elseif ($param['new_width'] == 600) {
            $param['new_width'] = 'preview';
            $param['new_height'] = '';
        }
        $new_filename = $param['id'] . '_' . $param['new_width'] . ($param['new_height'] != '' ? '_' . $param['new_height'] : '') . '.';
        if (is_numeric($param['new_width']) && is_numeric($param['new_height'])) {
            //check if the resolution exists
            $query = 'SELECT NULL FROM ' . WALLPAPERS_RES . ' WHERE resolution_w = ' . $param['new_width'] . ' AND resolution_h = ' . $param['new_height'];
            $result = mysql_query($query) or report_sql_error($query, __FILE__, __LINE__);
            if (mysql_num_rows($result) == 0) {
                //insert the new resolution
                $query = 'INSERT INTO ' . WALLPAPERS_RES . '(resolution_w, resolution_h, scale) VALUES(' . $param['new_width'] . ', ' . $param['new_height'] . ', ' . round($param['new_width'] / $param['new_height'], 2) . ')';
                mysql_query($query) or report_sql_error($query, __FILE__, __LINE__);
            }
            $query = 'INSERT INTO ' . WALLPAPERS_RES_RELATION . '(pid, resolution_pid)
			SELECT ' . $param['id'] . ', id
			FROM ' . WALLPAPERS_RES . '
			WHERE resolution_w = ' . $param['new_width'] . ' AND resolution_h = ' . $param['new_height'] . ' LIMIT 1';
            mysql_query($query) or report_sql_error($query, __FILE__, __LINE__);
        }
        //create the picutre!
        if ($type == 'jpg') {
            $new_filename .= 'jpg';
            $new_filename = check_filename($new_filename);
            imagejpeg($new_image, UPLOAD_PATH . $new_filename);
        } elseif ($type == 'png') {
            $new_filename .= 'png';
            $new_filename = check_filename($new_filename);
            imagepng($new_image, UPLOAD_PATH . $new_filename);
        } elseif ($type == 'gif') {
            $new_filename .= 'gif';
            $new_filename = check_filename($new_filename);
            imagegif($new_image, UPLOAD_PATH . $new_filename);
        } elseif ($type == 'bmp') {
            $new_filename .= 'bmp';
            $new_filename = check_filename($new_filename);
            image2wbmp($new_image, UPLOAD_PATH . $new_filename);
        }
        //destory the image to free up memory
        imagedestroy($new_image);
        if ($param['last']) {
            unlink(UPLOAD_PATH . $param['filename']);
        }
    }
    return $new_filename;
}