public function do_upload() { if (intval($_REQUEST['upload_type']) == 0) { $result = $this->uploadFile(); } else { $result = $this->uploadImage(); } if ($result['status'] == 1) { $list = $result['data']; if (intval($_REQUEST['upload_type']) == 0) { $file_url = "." . $list[0]['recpath'] . $list[0]['savename']; } else { $file_url = "." . $list[0]['bigrecpath'] . $list[0]['savename']; } /*$html = '<html>'; $html.= '<head>'; $html.= '<title>Insert Image</title>'; $html.= '<meta http-equiv="content-type" content="text/html; charset=utf-8">'; $html.= '</head>'; $html.= '<body>'; $html.= '<script type="text/javascript">'; $html.= 'parent.parent.KE.plugin["image"].insert("' . $_POST['id'] . '", "' . $file_url . '","' . $_POST['imgTitle'] . '","' . $_POST['imgWidth'] . '","' . $_POST['imgHeight'] . '","' . $_POST['imgBorder'] . '","' . $_POST['align'] . '");'; $html.= '</script>'; $html.= '</body>'; $html.= '</html>'; echo $html;*/ $public_url = $file_url; if ($GLOBALS['distribution_cfg']['OSS_TYPE'] && $GLOBALS['distribution_cfg']['OSS_TYPE'] != 'NONE') { if ($_REQUEST['dir'] != 'file') { syn_to_remote_image_server($file_url); } } $file_url = str_replace("./public/", SITE_DOMAIN . APP_ROOT . "/public/", $file_url); ajax_return(array('error' => 0, 'url' => $file_url, 'public_url' => $public_url)); } else { //echo "<script>alert('".$result['info']."');</script>"; ajax_return(array('error' => 1, 'message' => $result['info'])); } }
public function upload() { if ($GLOBALS['user_info']['id'] == 0) { $data['status'] = 0; //未登录 $data['msg'] = "请先登录"; ajax_return($data); } //上传处理 //创建avatar临时目录 if (!is_dir(APP_ROOT_PATH . "public/avatar")) { @mkdir(APP_ROOT_PATH . "public/avatar"); @chmod(APP_ROOT_PATH . "public/avatar", 0777); } if (!is_dir(APP_ROOT_PATH . "public/avatar/temp")) { @mkdir(APP_ROOT_PATH . "public/avatar/temp"); @chmod(APP_ROOT_PATH . "public/avatar/temp", 0777); } $upd_id = $id = intval($_REQUEST['uid']); $_FILES['avatar_file'] = $_FILES['file']; if (is_animated_gif($_FILES['avatar_file']['tmp_name'])) { $rs = save_image_upload($_FILES, "avatar_file", "avatar/temp", $whs = array(), false, true); if ($rs['error'] == 1) { ajax_return($rs); } $im = get_spec_gif_anmation($rs['avatar_file']['path'], 48, 48); $file_name = APP_ROOT_PATH . "public/avatar/temp/" . md5(NOW_TIME . $upd_id) . "_small.jpg"; file_put_contents($file_name, $im); $img_result['avatar_file']['thumb']['small']['path'] = $file_name; $im = get_spec_gif_anmation($rs['avatar_file']['path'], 120, 120); $file_name = APP_ROOT_PATH . "public/avatar/temp/" . md5(NOW_TIME . $upd_id) . "_middle.jpg"; file_put_contents($file_name, $im); $img_result['avatar_file']['thumb']['middle']['path'] = $file_name; $im = get_spec_gif_anmation($rs['avatar_file']['path'], 200, 200); $file_name = APP_ROOT_PATH . "public/avatar/temp/" . md5(NOW_TIME . $upd_id) . "_big.jpg"; file_put_contents($file_name, $im); $img_result['avatar_file']['thumb']['big']['path'] = $file_name; } else { $img_result = save_image_upload($_FILES, "avatar_file", "avatar/temp", $whs = array('small' => array(48, 48, 1, 0), 'middle' => array(120, 120, 1, 0), 'big' => array(200, 200, 1, 0)), false, true); if ($img_result['error'] == 1) { ajax_return($img_result); } } //开始移动图片到相应位置 $uid = sprintf("%09d", $id); $dir1 = substr($uid, 0, 3); $dir2 = substr($uid, 3, 2); $dir3 = substr($uid, 5, 2); $path = $dir1 . '/' . $dir2 . '/' . $dir3; //创建相应的目录 if (!is_dir(APP_ROOT_PATH . "public/avatar/" . $dir1)) { @mkdir(APP_ROOT_PATH . "public/avatar/" . $dir1); @chmod(APP_ROOT_PATH . "public/avatar/" . $dir1, 0777); } if (!is_dir(APP_ROOT_PATH . "public/avatar/" . $dir1 . '/' . $dir2)) { @mkdir(APP_ROOT_PATH . "public/avatar/" . $dir1 . '/' . $dir2); @chmod(APP_ROOT_PATH . "public/avatar/" . $dir1 . '/' . $dir2, 0777); } if (!is_dir(APP_ROOT_PATH . "public/avatar/" . $dir1 . '/' . $dir2 . '/' . $dir3)) { @mkdir(APP_ROOT_PATH . "public/avatar/" . $dir1 . '/' . $dir2 . '/' . $dir3); @chmod(APP_ROOT_PATH . "public/avatar/" . $dir1 . '/' . $dir2 . '/' . $dir3, 0777); } $id = str_pad($id, 2, "0", STR_PAD_LEFT); $id = substr($id, -2); $avatar_file_big = APP_ROOT_PATH . "public/avatar/" . $path . "/" . $id . "virtual_avatar_big.jpg"; $avatar_file_middle = APP_ROOT_PATH . "public/avatar/" . $path . "/" . $id . "virtual_avatar_middle.jpg"; $avatar_file_small = APP_ROOT_PATH . "public/avatar/" . $path . "/" . $id . "virtual_avatar_small.jpg"; @file_put_contents($avatar_file_big, file_get_contents($img_result['avatar_file']['thumb']['big']['path'])); @file_put_contents($avatar_file_middle, file_get_contents($img_result['avatar_file']['thumb']['middle']['path'])); @file_put_contents($avatar_file_small, file_get_contents($img_result['avatar_file']['thumb']['small']['path'])); if ($GLOBALS['distribution_cfg']['OSS_TYPE'] && $GLOBALS['distribution_cfg']['OSS_TYPE'] != 'NONE') { syn_to_remote_image_server($avatar_file_big); syn_to_remote_image_server($avatar_file_middle); syn_to_remote_image_server($avatar_file_small); } @unlink($img_result['avatar_file']['thumb']['big']['path']); @unlink($img_result['avatar_file']['thumb']['middle']['path']); @unlink($img_result['avatar_file']['thumb']['small']['path']); @unlink($img_result['avatar_file']['path']); //上传成功更新用户头像的动态缓存 update_avatar($upd_id); $data['status'] = 1; $data['small_url'] = get_user_avatar($upd_id, "small"); $data['middle_url'] = get_user_avatar($upd_id, "middle"); $data['big_url'] = get_user_avatar($upd_id, "big"); ajax_return($data); }
/** * 分享点评的上传,上传到comment目录,按日期划分 * 错误返回 error!=0,message错误消息, error=1000表示未登录 * 正确时返回 error=0, url: ./public格式的文件相对路径 path:物理路径 name:文件名 * thumb->preview 100x100的小图 url,path */ public function upload_topic() { global_run(); if (empty($GLOBALS['user_info'])) { $data['error'] = 1000; //未登录 $data['msg'] = $GLOBALS['lang']['PLEASE_LOGIN_FIRST']; ajax_return($data); } //上传处理 //创建comment目录 if (!is_dir(APP_ROOT_PATH . "public/comment")) { @mkdir(APP_ROOT_PATH . "public/comment"); @chmod(APP_ROOT_PATH . "public/comment", 0777); } $dir = to_date(NOW_TIME, "Ym"); if (!is_dir(APP_ROOT_PATH . "public/comment/" . $dir)) { @mkdir(APP_ROOT_PATH . "public/comment/" . $dir); @chmod(APP_ROOT_PATH . "public/comment/" . $dir, 0777); } $dir = $dir . "/" . to_date(NOW_TIME, "d"); if (!is_dir(APP_ROOT_PATH . "public/comment/" . $dir)) { @mkdir(APP_ROOT_PATH . "public/comment/" . $dir); @chmod(APP_ROOT_PATH . "public/comment/" . $dir, 0777); } $dir = $dir . "/" . to_date(NOW_TIME, "H"); if (!is_dir(APP_ROOT_PATH . "public/comment/" . $dir)) { @mkdir(APP_ROOT_PATH . "public/comment/" . $dir); @chmod(APP_ROOT_PATH . "public/comment/" . $dir, 0777); } if (app_conf("IS_WATER_MARK") == 1) { $img_result = save_image_upload($_FILES, "file", "comment/" . $dir, $whs = array('preview' => array(50, 50, 1, 0)), 1, 1); } else { $img_result = save_image_upload($_FILES, "file", "comment/" . $dir, $whs = array('preview' => array(50, 50, 1, 0)), 0, 1); } if (intval($img_result['error']) != 0) { ajax_return($img_result); } else { if ($GLOBALS['distribution_cfg']['OSS_TYPE'] && $GLOBALS['distribution_cfg']['OSS_TYPE'] != "NONE") { syn_to_remote_image_server($img_result['file']['url']); syn_to_remote_image_server($img_result['file']['thumb']['preview']['url']); } } $data_result['error'] = 0; $data_result['url'] = $img_result['file']['url']; $data_result['path'] = $img_result['file']['path']; $data_result['name'] = $img_result['file']['name']; $data_result['thumb'] = $img_result['file']['thumb']; require_once APP_ROOT_PATH . "system/utils/es_imagecls.php"; $image = new es_imagecls(); $info = $image->getImageInfo($img_result['file']['path']); $image_data['width'] = intval($info[0]); $image_data['height'] = intval($info[1]); $image_data['name'] = valid_str($_FILES['file']['name']); $image_data['filesize'] = filesize($img_result['file']['path']); $image_data['create_time'] = NOW_TIME; $image_data['user_id'] = intval($GLOBALS['user_info']['id']); $image_data['user_name'] = strim($GLOBALS['user_info']['user_name']); $image_data['path'] = $img_result['file']['thumb']['preview']['url']; $image_data['o_path'] = $img_result['file']['url']; $GLOBALS['db']->autoExecute(DB_PREFIX . "topic_image", $image_data); $data_result['id'] = intval($GLOBALS['db']->insert_id()); ajax_return($data_result); }
/** * 上传文件公共基础方法 * * @return array */ protected function uploadFile() { $upload = new UploadFile(); //设置上传文件大小 $upload->maxSize = conf('MAX_IMAGE_SIZE'); /* 配置于config */ //设置上传文件类型 $upload->allowExts = explode(',', conf('ALLOW_IMAGE_EXT')); /* 配置于config */ $dir_name = to_date(NOW_TIME, "Ym"); if (!is_dir(APP_ROOT_PATH . "public/attachment/" . $dir_name)) { @mkdir(APP_ROOT_PATH . "public/attachment/" . $dir_name); @chmod(APP_ROOT_PATH . "public/attachment/" . $dir_name, 0777); } $dir_name = $dir_name . "/" . to_date(NOW_TIME, "d"); if (!is_dir(APP_ROOT_PATH . "public/attachment/" . $dir_name)) { @mkdir(APP_ROOT_PATH . "public/attachment/" . $dir_name); @chmod(APP_ROOT_PATH . "public/attachment/" . $dir_name, 0777); } $dir_name = $dir_name . "/" . to_date(NOW_TIME, "H"); if (!is_dir(APP_ROOT_PATH . "public/attachment/" . $dir_name)) { @mkdir(APP_ROOT_PATH . "public/attachment/" . $dir_name); @chmod(APP_ROOT_PATH . "public/attachment/" . $dir_name, 0777); } $save_rec_Path = "/public/attachment/" . $dir_name . "/"; //上传时先存放原图 $savePath = APP_ROOT_PATH . "public/attachment/" . $dir_name . "/"; //绝对路径 $domain_path = get_domain() . APP_ROOT . $save_rec_Path; $upload->saveRule = "uniqid"; //唯一 $upload->savePath = $savePath; if ($upload->upload()) { $uploadList = $upload->getUploadFileInfo(); foreach ($uploadList as $k => $fileItem) { $uploadList[$k]['recpath'] = $save_rec_Path; if ($GLOBALS['distribution_cfg']['OSS_TYPE'] && $GLOBALS['distribution_cfg']['OSS_TYPE'] != 'NONE') { syn_to_remote_image_server("./public/attachment/" . $dir_name . "/" . $fileItem['savename']); } } return array("status" => 1, 'data' => $uploadList, 'info' => L("UPLOAD_SUCCESS")); } else { return array("status" => 0, 'data' => null, 'info' => $upload->getErrorMsg()); } }
/** * 用户注册免登录调用上传 */ public function user_register_upload() { //上传处理 //创建comment目录 if (!is_dir(APP_ROOT_PATH . "public/attachment")) { @mkdir(APP_ROOT_PATH . "public/attachment"); @chmod(APP_ROOT_PATH . "public/attachment", 0777); } $dir = to_date(NOW_TIME, "Ym"); if (!is_dir(APP_ROOT_PATH . "public/attachment/" . $dir)) { @mkdir(APP_ROOT_PATH . "public/attachment/" . $dir); @chmod(APP_ROOT_PATH . "public/attachment/" . $dir, 0777); } $dir = $dir . "/" . to_date(NOW_TIME, "d"); if (!is_dir(APP_ROOT_PATH . "public/attachment/" . $dir)) { @mkdir(APP_ROOT_PATH . "public/attachment/" . $dir); @chmod(APP_ROOT_PATH . "public/attachment/" . $dir, 0777); } $dir = $dir . "/" . to_date(NOW_TIME, "H"); if (!is_dir(APP_ROOT_PATH . "public/attachment/" . $dir)) { @mkdir(APP_ROOT_PATH . "public/attachment/" . $dir); @chmod(APP_ROOT_PATH . "public/attachment/" . $dir, 0777); } if (app_conf("IS_WATER_MARK") == 1) { $img_result = save_image_upload($_FILES, "file", "attachment/" . $dir, $whs = array(), 1, 1); } else { $img_result = save_image_upload($_FILES, "file", "attachment/" . $dir, $whs = array(), 0, 1); } if (intval($img_result['error']) != 0) { ajax_return($img_result); } else { if ($GLOBALS['distribution_cfg']['OSS_TYPE'] && $GLOBALS['distribution_cfg']['OSS_TYPE'] != "NONE") { syn_to_remote_image_server($img_result['file']['url']); } } $data_result['error'] = 0; $data_result['url'] = $img_result['file']['url']; $data_result['small_url'] = get_spec_image($data_result['url'], 88, 75, 1); $data_result['big_url'] = get_spec_image($data_result['url'], 600, 400); $data_result['path'] = $img_result['file']['path']; $data_result['name'] = $img_result['file']['name']; ajax_return($data_result); }
function saveimage($dir, $allow_water = true) { //image object require_once APP_ROOT_PATH . "system/utils/es_imagecls.php"; $image = new es_imagecls(); $image->max_size = intval(app_conf("MAX_IMAGE_SIZE")); $image->init($_FILES['file'], $dir); if ($image->save()) { $img_item['url'] = $image->file['target']; $img_item['path'] = $image->file['local_target']; $img_item['name'] = $image->file['prefix']; $img_item['width'] = $image->file['width']; $img_item['height'] = $image->file['height']; } else { if ($image->error_code == -105) { return array('error' => 1, 'message' => '上传的图片太大'); } elseif ($image->error_code == -104 || $image->error_code == -103 || $image->error_code == -102 || $image->error_code == -101) { return array('error' => 1, 'message' => '非法图像'); } exit; } //水印处理 if ($allow_water && intval(app_conf("IS_WATER_MARK"))) { $is_water = intval(app_conf("IS_WATER_MARK")); } $water_image = APP_ROOT_PATH . app_conf("WATER_MARK"); $alpha = intval(app_conf("WATER_ALPHA")); $place = intval(app_conf("WATER_POSITION")); if ($is_water) { $dirs = pathinfo($img_item['url']); $dir = $dirs['dirname']; $dir = $dir . "/origin/"; $paths = pathinfo($img_item['path']); $path = $paths['dirname']; $path = $path . "/origin/"; if (!is_dir($path)) { @mkdir($path); @chmod($path, 0777); } $filename = $paths['basename']; @file_put_contents($path . $filename, @file_get_contents($img_item['path'])); $image->water($img_item['path'], $water_image, $alpha, $place); if ($GLOBALS['distribution_cfg']['OSS_TYPE'] && $GLOBALS['distribution_cfg']['OSS_TYPE'] != "NONE") { syn_to_remote_image_server($img_item['url']); //同步水印图 syn_to_remote_image_server($dir . $filename); //同步原图 } } else { if ($GLOBALS['distribution_cfg']['OSS_TYPE'] && $GLOBALS['distribution_cfg']['OSS_TYPE'] != "NONE") { syn_to_remote_image_server($img_item['url']); } } return $img_item; }