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; }
$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");
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); }
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; }
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);
/** * 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']; } }
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; }
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) {