function process_image_upload($Field)
{
    $temp_file_path = $_FILES[$Field]['tmp_name'];
    $temp_file_name = $_FILES[$Field]['name'];
    list(, , $temp_type) = getimagesize($temp_file_path);
    //echo $temp_type;
    if ($temp_type === NULL) {
        return false;
    }
    switch ($temp_type) {
        case IMAGETYPE_GIF:
            break;
        case IMAGETYPE_JPEG:
            break;
        case IMAGETYPE_PNG:
            break;
        default:
            return false;
    }
    $uploaded_file_path = UPLOADED_IMAGE_DESTINATION . $temp_file_name;
    $processed_file_path = PROCESSED_IMAGE_DESTINATION . preg_replace('/\\.[^\\.]+$/', '.jpg', $temp_file_name);
    move_uploaded_file($temp_file_path, $uploaded_file_path);
    $result = create_watermark($uploaded_file_path, $processed_file_path);
    if ($result === false) {
        return false;
    } else {
        return array($uploaded_file_path, $processed_file_path);
    }
}
 function image_upload_function($field_name = "", $upload_path = './', $width = 0, $height = 0, $max_width = 800, $max_height = 800, $max_size = 500, $maintain_ratio = TRUE, $encrypt_name = TRUE, $create_thumb = FALSE, $thumb_width = 280, $thumb_height = 160, $thumb_maintain_ration = TRUE, $is_watermark = FALSE)
 {
     $ci =& get_instance();
     $return_arr = array(true, "error_msg" => "Undefined error!");
     $config['upload_path'] = $upload_path;
     $config['allowed_types'] = 'gif|jpg|png|jpeg';
     $config['max_size'] = $max_size;
     $config['max_width'] = $max_width;
     $config['max_height'] = $max_height;
     $config['encrypt_name'] = $encrypt_name;
     $config['remove_spaces'] = TRUE;
     $ci->load->library('upload', $config);
     if (!$ci->upload->do_upload($field_name)) {
         $return_arr["error_msg"] = $ci->upload->display_errors();
     } else {
         $upload_data = $ci->upload->data();
         //create thumbnail in same folder with thumb_ prefix
         if ($create_thumb) {
             create_image_thumb($upload_data["full_path"], $thumb_width, $thumb_height, $thumb_maintain_ration);
         }
         //End
         if ($is_watermark) {
             create_watermark($upload_data["full_path"]);
         }
         $return_arr = array(false, 'upload_data' => $upload_data);
     }
     return $return_arr;
 }
Example #3
0
    $permission['AllowedTypes'] = @explode(' ', $permission['AllowedTypes']);
    if (@(!in_array($ext, $permission['AllowedTypes']))) {
        catcherror("{$lna[420]} .{$ext} ");
    }
    @unlink($detail_array['filepath']);
    if (file_exists($detail_array['filepath'])) {
        catcherror($lna[1185]);
    }
    if (!move_uploaded_file($upload_file, "{$targetfolder}/{$targetname}")) {
        catcherror($lna[130] . "{$targetfolder}/");
    }
    //Add watermark
    if ($mbcon['wmenable'] == '1') {
        if (in_array($ext, $imgext_watermark)) {
            unset($watermark_result);
            $watermark_result = create_watermark("{$targetfolder}/{$targetname}");
            if (!$watermark_result) {
                $watermark_result = "<br>({$lang_wm[0]}: {$lang_wm[8]}{$watermark_err})";
            } else {
                $watermark_result = "<br>({$lang_wm[0]}: {$watermark_result})";
            }
        } else {
            $watermark_result = '';
        }
    } else {
        $watermark_result = '';
    }
    catchsuccess($replaceok . ' ' . $watermark_result, "{$lna[758]}|admin.php?go=carecenter_adminattach");
}
if ($job == 'mysql') {
    $all_tables = array("{$db_prefix}blogs", "{$db_prefix}calendar", "{$db_prefix}categories", "{$db_prefix}counter", "{$db_prefix}forbidden", "{$db_prefix}history", "{$db_prefix}linkgroup", "{$db_prefix}links", "{$db_prefix}maxrec", "{$db_prefix}messages", "{$db_prefix}mods", "{$db_prefix}replies", "{$db_prefix}tags", "{$db_prefix}user", "{$db_prefix}plugins", "{$db_prefix}pages", "{$db_prefix}upload");
Example #4
0
function metaWeblog_newMediaObject($values)
{
    //2006-12-2 add support for uploading files
    global $config, $defualtcategoryid, $db_prefix, $mbcon, $nowtime;
    $userdetail = check_user($values['username'], $values['password']);
    $struct = $values['struct'];
    //writetofile ('text1.php', $struct['bits']); //debug only
    if ($struct['bits'] && $struct['name']) {
        $writefilecontent = base64_decode($struct['bits']);
        $ext = strtolower(strrchr($struct['name'], '.'));
        $ext = str_replace(".", '', $ext);
        $upload_filename = time() . '_' . rand(1000, 9999) . substr(md5($struct['name']), 0, 4) . '.' . $ext;
        if ($mbcon['uploadfolders'] == '1') {
            $targetfolder_ym = date("Ym") . '/';
            $targetfolder = "attachment/{$targetfolder_ym}";
            if (!is_dir($targetfolder)) {
                $mktargetfolder = @mkdir($targetfolder, 0777);
                if (!$mktargetfolder) {
                    xml_error("Sorry, uploading file ({$struct['name']}) failed because PHP was unable to create a new directory.");
                }
            }
        } else {
            $targetfolder_ym = '';
            $targetfolder = 'attachment';
        }
        $filenum = @fopen("{$targetfolder}/{$upload_filename}", "wb");
        if (!$filenum) {
            xml_error("Sorry, uploading file ({$struct['name']}) failed.");
        }
        flock($filenum, LOCK_EX);
        fwrite($filenum, $writefilecontent);
        fclose($filenum);
        //DB updating, new function in 2.1.0
        $blog = new boblog();
        $blog->query("INSERT INTO `{$db_prefix}upload` (fid,filepath,originalname,uploadtime,uploaduser) VALUES (null, \"attachment/{$targetfolder_ym}{$upload_filename}\", \"{$struct['name']}\", {$nowtime['timestamp']}, {$userdetail['userid']})");
        $currentid = db_insert_id();
        if ($mbcon['wmenable'] == '1') {
            //Add watermark
            $imgext_watermark = array('jpg', 'gif', 'png');
            if (in_array($ext, $imgext_watermark)) {
                create_watermark("attachment/{$targetfolder_ym}{$upload_filename}");
            }
        }
    }
    $xml_content = make_xml_piece("struct", array('url' => "{$config['blogurl']}/attachment.php?fid={$currentid}"));
    $body_xml = xml_generate($xml_content);
    send_response($body_xml);
}
Example #5
0
function imager_mark($src, $type)
{
    $conf = infra_config();
    if (!$conf['imager']['watermark']) {
        return;
    }
    if (!$type) {
        return;
    }
    if ($type == 'gif') {
        return;
    }
    //Проблема прозрачности
    $info =& imager_readInfo($src);
    if (@$info['ignore']) {
        return;
    }
    //В изображении указано что не нужно делать водяной знак на нём
    if (@$info['water']) {
        return;
    }
    //Если нужно повторно наложить водяной знак, для этого нужно удалить все старые знаки
    $water = infra_theme('*imager/mark.png');
    if (!$water) {
        return;
    }
    //Добавляем водяной знак
    $orig = $info['orig'];
    if (!$orig) {
        $orig = $src;
    } elseif (!infra_theme($orig)) {
        return;
    }
    //Защита.. оригинал не найден.. значит старая версия водяной знак есть,
    //метке water нет. второй знак не нужен
    $fn = 'imagecreatefrom' . $type;
    $img = $fn($orig);
    $orig = infra_theme($orig);
    list($w, $h) = getimagesize($orig);
    $w = $w * 9 / 10;
    $h = $h * 9 / 10;
    $water = imager_scale($water, $w, $h);
    $temp = tmpfile();
    fwrite($temp, $water);
    $meta = stream_get_meta_data($temp);
    $water = imagecreatefrompng($meta['uri']);
    $img = create_watermark($type, $img, $water, 100);
    //$img - картинка с водяным знаком
    $info = imager_makeInfo($src);
    //Сделали бэкап, или считали info у существующего файла, чтобы после изменений сохранить прошлые
    $fn = 'image' . $type;
    $fn($img, $src);
    //Подменили картинку на картинку с водяным знаком
    $info['water'] = true;
    imager_writeInfo($src, $info);
    return;
}
Example #6
0
 if (@(!in_array($ext, $permission['AllowedTypes']))) {
     print_upload("{$lna[420]} .{$ext} ");
 }
 if ($upload_file_size > $permission['MaxSize'] * 1024) {
     print_upload("{$lna[421]} ( {$permission['MaxSize']} KB)");
 }
 $upload_filename = strtolower($upload_filename);
 if (!move_uploaded_file($upload_file, "{$targetfolder}/{$upload_filename}")) {
     print_upload($lna[130] . "{$targetfolder}/");
 }
 @chmod("{$targetfolder}/{$upload_filename}", 0755);
 //Add watermark
 if ($mbcon['wmenable'] == '1') {
     if (in_array($ext, $imgext_watermark)) {
         unset($watermark_result);
         $watermark_result = create_watermark("{$targetfolder}/{$upload_filename}");
         if (!$watermark_result) {
             $watermark_result = "<br>({$lang_wm[0]}: {$lang_wm[8]}{$watermark_err})";
         } else {
             $watermark_result = "<br>({$lang_wm[0]}: {$watermark_result})";
         }
     } else {
         $watermark_result = '';
     }
 } else {
     $watermark_result = '';
 }
 //DB updating, new function in 2.1.0
 $blog->query("INSERT INTO `{$db_prefix}upload` (fid,filepath,originalname,uploadtime,uploaduser) VALUES (null, \"attachment/{$targetfolder_ym}{$upload_filename}\", \"{$original_uploadname}\", {$nowtime['timestamp']}, {$userdetail['userid']})");
 $currentid = db_insert_id();
 $upload_filename_list[] = "{$targetfolder_ym}" . str_replace('.', '*', $original_uploadname);
Example #7
0
 /**
  * Processing current upload, aka 'after user click upload button to upload his files'
  *
  * @param bool $just_check If enabled, no uploading will occur, just checking process 
  */
 public function process($just_check = false)
 {
     global $SQL, $dbprefix, $config, $lang;
     ($hook = kleeja_run_hook('process_func_uploading_cls')) ? eval($hook) : null;
     //run hook
     #To prevent flooding, user must wait, waiting-time is grapped from Kleeja settings, admin is exceptional
     if (!user_can('enter_acp') && user_is_flooding()) {
         return $this->errors[] = sprintf($lang['YOU_HAVE_TO_WAIT'], $config['usersectoupload']);
     }
     #if captcha enabled
     if ($config['safe_code']) {
         #captcha is wrong
         if (!kleeja_check_captcha()) {
             return $this->errors[] = $lang['WRONG_VERTY_CODE'];
         }
     }
     #files uploading
     $files = rearrange_files_input($_FILES['file']);
     if (empty($files)) {
         $this->errors[] = $lang['CHOSE_F'];
     }
     foreach ($files as $file) {
         #if total uploaded files reached the limit
         if ($this->total >= $config['filesnum']) {
             break;
         }
         #no file content
         if (empty($file['tmp_name'])) {
             continue;
         }
         #filename without extension?
         if (strpos($file['name'], '.') === false) {
             #TODO: try to figure out the extension for popular files
             $this->errors[] = sprintf($lang['WRONG_F_NAME'], htmlspecialchars($file['name']));
             continue;
         }
         #clean filename, what about other language?
         $filename = strtr($file['name'], 'ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöøùúûüýÿ', 'SZszYAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy');
         $filename = preg_replace(array('/\\s/', '/\\.[\\.]+/', '/[^\\w_\\.\\-]/'), array('_', '.', ''), strtolower($filename));
         #get the extension and the right filename
         $file_extension = strtolower(substr($filename, strrpos($filename, '.') + 1));
         $filename = str_replace('.', '_', substr($filename, 0, strrpos($filename, '.')));
         #if file extension is not allowed?
         if (!in_array($file_extension, array_keys($this->allowed_extensions))) {
             $this->errors[] = sprintf($lang['FORBID_EXT'], $file_extension);
             continue;
         }
         #file check for first 265 content
         if (check_file_content($file['tmp_name']) == false && !$just_check) {
             $this->errors[] = sprintf($lang['NOT_SAFE_FILE'], $filename);
             continue;
         }
         #file size exceed allowed one
         if ($this->allowed_extensions[$file_extension] > 0 && $file['size'] >= $this->allowed_extensions[$file_extension]) {
             $this->errors[] = sprintf($lang['SIZE_F_BIG'], htmlspecialchars($file_extension['name']), readable_size($this->allowed_extensions[$file_extension]));
             continue;
         }
         #modify filename to apply Admin changes
         $filename = change_filename($file['name'], $file_extension);
         ($hook = kleeja_run_hook('uploading_process_func_loop_files')) ? eval($hook) : null;
         //run hook
         #if this is listed as live-ext from Kleeja settings
         $live_exts = array_map('trim', explode(',', $config['imagefolderexts']));
         $folder_to_upload = $this->uploading_folder;
         if (in_array($file_extension, $live_exts)) {
             # live-exts folder, if empty use default folder
             $folder_to_upload = trim($config['imagefolder']) == '' ? trim($config['foldername']) : $this->uploading_folder;
         }
         #is this file an image?
         $is_img = in_array($file_extension, array('png', 'gif', 'jpg', 'jpeg')) ? true : false;
         #now upload
         $upload_result = move_uploaded_file($file['tmp_name'], $folder_to_upload . '/' . $filename);
         #if uploading went ok
         if ($upload_result && !$just_check) {
             #sometime can nott see the file after uploading without this fix
             @chmod($folder . '/' . $filename, 0644);
             #generate delete code
             $delete_code = md5($filename . uniqid());
             #insert to the DB
             $insert_id = $this->add_to_database($filename, $folder_to_upload, $file['size'], $file_extension, $file['name'], $delete_code);
             #if insertion goes bad, rollback, delete the file and show error
             if (!$insert_id) {
                 @unlink($folder . '/' . $filname);
                 $this->errors[] = sprintf($lang['CANT_UPLAOD'], $filename);
                 continue;
             }
             # inforamation of file, used for generating a url boxes
             $file_info = array('::ID::' => $insert_id, '::NAME::' => $filename, '::DIR::' => $folder_to_upload, '::FNAME::' => $file['name'], '::EXT::' => $file_extension, '::CODE::' => $delete_code);
             #if image
             if ($is_img) {
                 # generate thumb always
                 create_thumb($folder_to_upload . '/' . $filename, $file_extension, $folder_to_upload . '/thumbs/' . $filename, $this->thumb_dimensions['width'], $this->thumb_dimensions['height']);
                 #show thumb if enabled
                 if ($config['thumbs_imgs']) {
                     $this->results[$insert_id]['thumb'] = kleeja_get_link('thumb', $file_info);
                 }
                 #if watermark enabled
                 if ($config['write_imgs']) {
                     create_watermark($folder_to_upload . '/' . $filename, $file_extension);
                 }
                 $this->results[$insert_id]['image'] = kleeja_get_link('image', $file_info);
             } else {
                 $this->results[$insert_id]['file'] = kleeja_get_link('file', $file_info);
             }
             #if delete code is enabled to be displayed
             if ($config['del_url_file']) {
                 $this->results[$insert_id]['delete_code'] = kleeja_get_link('del', $file_info);
             }
             #uploaded files increment++
             $this->total++;
         } else {
             $this->errors[] = sprintf($lang['CANT_UPLAOD'], $filename);
         }
     }
     #end-foreach
     #total files equal zero, then show a message to tell user to select files
     if ($this->total == 0 && !sizeof($this->errors)) {
         $this->errors[] = $lang['CHOSE_F'];
     }
 }
Example #8
0
 function save_picture_resizeWHWM($filename, $folder, $prefix = '', $width, $newName = "", $height = 0, $opa, $qual)
 {
     global $app;
     $field = substr($filename, 2);
     if ($newName == "") {
         $new_name = $prefix . strtoupper(md5(uniqid(rand(), true))) . substr($_FILES[$filename]['name'], -4, 4);
     } else {
         $new_name = $prefix . $newName;
     }
     // ambil identitas asli gambar
     $im_src = imagecreatefromjpeg($_FILES[$filename]['tmp_name']);
     $src_width = imageSX($im_src);
     $src_height = imageSY($im_src);
     //Set ukuran gambar hasil perubahan dengan size yg ditentukan
     $dst_width = $width;
     if ($height != 0) {
         $dst_height = $height;
     } else {
         $dst_height = $dst_width / $src_width * $src_height;
     }
     //proses perubahan ukuran
     $im = imagecreatetruecolor($dst_width, $dst_height);
     imagecopyresampled($im, $im_src, 0, 0, 0, 0, $dst_width, $dst_height, $src_width, $src_height);
     //Simpan gambar
     $uploaded_file_path = $folder . "/" . $_FILES[$filename]['name'];
     $processed_file_path = $folder . "/" . $new_name;
     if (!@imagejpeg($im, $uploaded_file_path)) {
         imagedestroy($im_src);
         imagedestroy($im);
         admlib::display_msg($app[lang][error]['title'], "{$app[lang][field][$field]} {$app[lang][error]['ERR_COPY']}");
     } else {
         imagedestroy($im_src);
         imagedestroy($im);
         $result = create_watermark($uploaded_file_path, $processed_file_path, $watermark, $opa, $qual);
         if ($result === false) {
             admlib::display_msg($app[lang][error]['title'], "{$app[lang][field][$field]} {$app[lang][error]['ERR_COPY']}");
         }
     }
     return $new_name;
 }
Example #9
0
function process_image_upload()
{
    $temp_file_path = WATERMARK_SOURCE_IMAGE;
    $temp_file_name = WATERMARK_SOURCE_NAME;
    list(, , $temp_type) = getimagesize($temp_file_path);
    if ($temp_type === NULL) {
        return false;
    }
    switch ($temp_type) {
        case IMAGETYPE_GIF:
            break;
        case IMAGETYPE_JPEG:
            break;
        case IMAGETYPE_PNG:
            break;
        default:
            return false;
    }
    $uploaded_file_path = UPLOADED_IMAGE_DESTINATION . $temp_file_name;
    $processed_file_path = PROCESSED_IMAGE_DESTINATION . $temp_file_name;
    move_uploaded_file($temp_file_path, $uploaded_file_path);
    $result = create_watermark($uploaded_file_path, $processed_file_path);
    if ($result === false) {
        return false;
    } else {
        return array($uploaded_file_path, $processed_file_path);
    }
}
            // 判断是否使用缩略图
            if ($options['attachments_thumbs'] && $gd_version && $options['attachments_thumbs_size']) {
                $size = explode('x', strtolower($options['attachments_thumbs_size']));
                if (($imginfo[0] > $size[0] || $imginfo[1] > $size[1]) && $attach['size'] < 2048000) {
                    $attach_thumb = array('filepath' => $attachment, 'filename' => $fnamehash, 'extension' => $attach['ext'], 'attachsubdir' => $attachsubdir, 'thumbswidth' => $size[0], 'thumbsheight' => $size[1]);
                    $thumb_data = generate_thumbnail($attach_thumb);
                    $attach_data['thumbwidth'] = $thumb_data['thumbwidth'];
                    $attach_data['thumbheight'] = $thumb_data['thumbheight'];
                    $attach_data['thumbfilepath'] = $attachsubdir . $thumb_data['thumbfilepath'];
                }
            }
            //水印
            $watermark_size = explode('x', strtolower($options['watermark_size']));
            if ($isimage && $options['watermark'] && $imginfo[0] > $watermark_size[0] && $imginfo[1] > $watermark_size[1] && $attach['size'] < 2048000) {
                require_once SABLOG_ROOT . 'include/func/image.func.php';
                create_watermark($path);
                $attach['size'] = filesize($path);
            }
        }
        // 把文件信息插入数据库
        $DB->query("INSERT INTO {$db_prefix}attachments (filename,filesize,filetype,filepath,dateline,downloads,isimage,thumb_filepath,thumb_width,thumb_height) VALUES ('" . sax_addslashes($attach['name']) . "', '" . $attach['size'] . "', '" . sax_addslashes($attach['type']) . "', '" . sax_addslashes($filepath) . "', '{$timestamp}', '0', '{$isimage}', '" . $attach_data['thumbfilepath'] . "', '" . $attach_data['thumbwidth'] . "','" . $attach_data['thumbheight'] . "')");
        $new_attachid = $DB->insert_id();
        unset($isimage);
        unset($attach_data);
    }
}
/*
else {
	if(isset($_FILES['attach']) && is_array($_FILES['attach'])) {
		foreach($_FILES['attach'] as $key => $var) {
			foreach($var as $id => $val) {