/** * 安装包文件和对应图片的上传 */ public function uploadfileAction() { //$stateArray = array(); //读取memcache缓存信息 //$memcache = XMemCache::GetInstance(); //$status = $memcache->Get('Cur_X_User'); //if(empty($_SESSION['Cur_X_User']['id'])) //{ // die('请先登录'); //} //上传错误提示 $errorMsg = array('0' => '文件上传成功', '1' => '文件超出了服务器配置大小', '2' => '文件超出了表单配置大小', '3' => '仅部分文件上传', '4' => '没有找到上传文件', '5' => '上传文件大小为零', '6' => '未找到临时文件夹', '7' => '临时文件夹写入失败', '8' => '服务器文件上传扩展未开启', '9' => '上传图片规格不符合要求', '10' => '存放文件夹建立失败', '11' => '上传文件移动失败'); //引入图片处理类 require_once COMMON_PATH . "XThumb.php"; $imgthumb = new XThumb(); $num = reqnum("num", 0); $appcol = reqstr('appcol', 1); $appid = reqstr('appid', ''); $appid = $appid ? $appid : $this->getmaxappidAction($appcol); //返回数据 $arr = array(); //json数据返回 $returnJson = ''; $error = true; //上传文件目录设置 if ($appcol == 2) { $root = APP_PATH; } elseif ($appcol == 1) { $root = GAME_PATH; } define('ROOT', $root); $flag = isset($_POST['flag']) ? $_POST['flag'] : ''; if (!$flag) { return; } switch ($flag) { //logo上传 case 'logo': $logo = isset($_FILES['file']) ? $_FILES['file'] : ''; if ($logo['error'] == 0) { $dir = ROOT . $appid; $img_info = getimagesize($logo['tmp_name']); //图片比例限制 $radio = floor($img_info[0] / $img_info[1] * 10); if (!($radio > 9 && $radio < 11)) { $error = false; $msg = $msg ? $msg . ',' . $logo['tmp_name'] . $errorMsg[9] : $logo['tmp_name'] . $errorMsg[9]; } else { if (!is_dir($dir)) { if (!mkdir($dir, 0777, true)) { $error = false; $msg = $msg ? $msg . ',' . $logo['tmp_name'] . $errorMsg[10] : $logo['tmp_name'] . $errorMsg[10]; } else { //获取后缀名 //$ext = strrchr($logo['name'],'.'); $ext = '.png'; $filename = 'logo' . $ext; //文件名及地址组装 $path = $dir . '/' . $filename; $arr['img_name'] = str_replace(ROOT, '/', $path); if (!move_uploaded_file($logo['tmp_name'], $path)) { $error = false; $msg = $msg ? $msg . ',' . $logo['tmp_name'] . $errorMsg[11] : $logo['tmp_name'] . $errorMsg[11]; } else { $imgthumb->imgZoom($path, 150, 150, $path); } } } else { //获取后缀名 //$ext = strrchr($logo['name'],'.'); $ext = '.png'; $filename = 'logo' . $ext; //文件名及地址组装 $path = $dir . '/' . $filename; $arr['img_name'] = $filename; if (!move_uploaded_file($logo['tmp_name'], $path)) { $error = false; $msg = $msg ? $msg . ',' . $logo['tmp_name'] . $errorMsg[11] : $logo['tmp_name'] . $errorMsg[11]; } else { $imgthumb->imgZoom($path, 150, 150, $path); } } } } else { if ($logo['error'] > 0) { $error = false; $msg = $msg ? $msg . ',' . $logo['tmp_name'] . $errorMsg[$file['error']] : $logo['tmp_name'] . $errorMsg[$file['error']]; $arr['result'] = 'error'; $arr['msg'] = $errorMsg[$logo['error']]; } } break; //安装文件上传 //安装文件上传 case 'installfile': //安装文件 $installfile = isset($_FILES['file']) ? $_FILES['file'] : ''; $arr['size'] = ceil($installfile['size'] / 1000000); if ($installfile['error'] == 0) { $dir = ROOT . $appid; if (!is_dir($dir)) { if (!mkdir($dir, 0777, true)) { $error = false; $msg = $errorMsg[10]; } } $filename = $installfile['name']; $file_ext = strtolower(substr($filename, strrpos($filename, '.') + 1)); $appname = $appid . '.' . $file_ext; $path = $dir . '/' . $appname; $arr['img_name'] = $appname; if (!move_uploaded_file($installfile['tmp_name'], $path)) { $error = false; $msg = $msg ? $msg . ',' . $installfile['tmp_name'] . $errorMsg[11] : $installfile['tmp_name'] . $errorMsg[11]; } } else { if ($installfile['error'] > 0) { $error = false; $msg = $msg ? $msg . ',' . $installfile['tmp_name'] . $errorMsg[$installfile['error']] : $installfile['tmp_name'] . $errorMsg[$installfile['error']]; $arr['result'] = 'error'; $arr['msg'] = $errorMsg[$installfile['tmp_name']]; } } break; //安卓封面 //安卓封面 case 'fmandroid': $error = true; $fmandroid = isset($_FILES['file']) ? $_FILES['file'] : ''; if ($fmandroid['error'] == 0) { $dir = ROOT . $appid; $dir = $dir . '/' . 'android' . '/' . 'ads' . '/'; echo $dir; $img_info = getimagesize($fmandroid['tmp_name']); //计算长宽必烈 $radio = floor($img_info[0] / $img_info[1] * 100); if (!($radio > 185 && $radio < 195)) { $error = false; $msg = $msg ? $msg . ',' . $fmandroid['tmp_name'] . $errorMsg[9] : $fmandroid['tmp_name'] . $errorMsg[9]; } else { if (!is_dir($dir)) { if (!mkdir($dir, 0777, true)) { $error = false; $msg = $msg ? $msg . ',' . $fmandroid['tmp_name'] . $errorMsg[10] : $fmandroid['tmp_name'] . $errorMsg[10]; } else { //获取扩展名 $filename = $fmandroid['name']; $ext = strtolower(substr($filename, strrpos($filename, '.') + 1)); $filename = 'adshdpi'; $fname = $filename . '.' . $ext; $path = $dir . $fname; $arr['img_name'] = $fname; if (!move_uploaded_file($fmandroid['tmp_name'], $path)) { $error = false; $msg = $msg ? $msg . ',' . $fmandroid['tmp_name'] . $errorMsg[11] : $fmandroid['tmp_name'] . $errorMsg[11]; } else { $imgthumb->imgZoom($path, 480, 255, $dir . 'adshdpi' . $ext); $imgthumb->imgZoom($path, 540, 288, $dir . 'adsmdpi' . $ext); $imgthumb->imgZoom($path, 720, 380, $dir . 'adsxhdpi' . $ext); $imgthumb->imgZoom($path, 1080, 570, $dir . 'adsxxhdpi' . $ext); } } } else { //获取扩展名 $filename = $fmandroid['name']; $ext = strtolower(substr($filename, strrpos($filename, '.') + 1)); $filename = 'adshdpi'; $fname = $filename . '.' . $ext; $path = $dir . $fname; $arr['img_name'] = $fname; if (!move_uploaded_file($fmandroid['tmp_name'], $path)) { $error = false; $msg = $msg ? $msg . ',' . $fmandroid['tmp_name'] . $errorMsg[11] : $fmandroid['tmp_name'] . $errorMsg[11]; } else { $imgthumb->imgZoom($path, 480, 255, $dir . 'adshdpi' . $ext); $imgthumb->imgZoom($path, 540, 288, $dir . 'adsmdpi' . $ext); $imgthumb->imgZoom($path, 720, 380, $dir . 'adsxhdpi' . $ext); $imgthumb->imgZoom($path, 1080, 570, $dir . 'adsxxhdpi' . $ext); } } } } else { if ($fmandroid['error'] > 0) { $error = false; $msg = $msg ? $msg . ',' . $fmandroid['tmp_name'] . $errorMsg[$fmandroid['error']] : $fmandroid['tmp_name'] . $errorMsg[$fmandroid['error']]; $arr['result'] = 'error'; $arr['msg'] = $errorMsg[$fmandroid['tmp_name']]; } } break; //ppt安卓 //ppt安卓 case 'pptandroid': $error = true; $files = array(); $arr['img_name'] = ''; foreach ($_FILES['file'] as $k => $v) { foreach ($v as $key => $val) { $files[$key][$k] = $val; } } foreach ($files as $key => $file) { if ($file['error'] == 0) { //获取图片信息 $img_info = getimagesize($file['tmp_name']); $radio = floor($img_info[0] / $img_info[1] * 100); if (!($radio > 55 && $radio < 61)) { $error = false; $msg = $msg ? $msg . ',' . $file['tmp_name'] . $errorMsg[9] : $file['tmp_name'] . $errorMsg[9]; } else { $dir = ROOT . $appid . '/'; if (!is_dir($dir)) { if (!mkdir($dir, 0777, true)) { $error = false; $msg = $msg ? $msg . ',' . $file['tmp_name'] . $errorMsg[10] : $file['tmp_name'] . $errorMsg[10]; } } $filename = $file['name']; $ext = strtolower(substr($filename, strrpos($filename, '.') + 1)); $rand = rand(100, 999); $filename = $appid . '_' . date("YmdHis") . $rand . "." . $ext; $path = $dir . $filename; $newImg = $filename; $arr['img_name'] = $newImg . ';' . $arr['img_name']; //创建需要的文件目录 $dir0 = $dir . 'android/' . 'hdpi/'; $dir1 = $dir . 'android/' . 'mdpi/'; $dir2 = $dir . 'android/' . 'xhdpi/'; $dir3 = $dir . 'android/' . 'xxhdpi/'; //echo $path;exit; if (!move_uploaded_file($file['tmp_name'], $path)) { $error = false; $msg = $msg ? $msg . ',' . $file['tmp_name'] . $errorMsg[11] : $file['tmp_name'] . $errorMsg[11]; } else { if (!is_dir($dir0)) { if (!mkdir($dir0, 0777, true)) { $error = false; $msg = $msg ? $msg . ',' . $file['tmp_name'] . $errorMsg[10] : $file['tmp_name'] . $errorMsg[10]; } } if (!is_dir($dir1)) { if (!mkdir($dir1, 0777, true)) { $error = false; $msg = $msg ? $msg . ',' . $file['tmp_name'] . $errorMsg[10] : $file['tmp_name'] . $errorMsg[10]; } } if (!is_dir($dir2)) { if (!mkdir($dir2, 0777, true)) { $error = false; $msg = $msg ? $msg . ',' . $file['tmp_name'] . $errorMsg[10] : $file['tmp_name'] . $errorMsg[10]; } } if (!is_dir($dir3)) { if (!mkdir($dir3, 0777, true)) { $error = false; $msg = $msg ? $msg . ',' . $file['tmp_name'] . $errorMsg[10] : $file['tmp_name'] . $errorMsg[10]; } } $imgthumb->imgZoom($path, 336, 560, $dir0 . $filename); $imgthumb->imgZoom($path, 378, 672, $dir1 . $filename); $imgthumb->imgZoom($path, 504, 896, $dir2 . $filename); $imgthumb->imgZoom($path, 756, 1344, $dir3 . $filename); } } } else { if ($file['error'] > 0) { $error = false; $msg = $msg ? $msg . ',' . $file['tmp_name'] . $errorMsg[$file['error']] : $file['tmp_name'] . $errorMsg[$file['error']]; $arr['result'] = 'error'; $arr['msg'] = $errorMsg[$file['tmp_name']]; } } } break; case 'fmios': //ios封面图片缩放及上传 $error = true; $fmios = isset($_FILES['file']) ? $_FILES['file'] : ''; if ($fmios['error'] == 0) { $dir = ROOT . $appid; $dir = $dir . '/' . 'ios' . '/' . 'ads' . '/'; $img_info = getimagesize($fmios['tmp_name']); //图片长宽必烈 $radio = floor($img_info[0] / $img_info[1] * 100); if (!($radio > 55 && $radio < 65)) { $error = false; $msg = $msg ? $msg . ',' . $fmios['tmp_name'] . $errorMsg[9] : $fmios['tmp_name'] . $errorMsg[9]; } else { if (!is_dir($dir)) { if (!mkdir($dir, 0777, true)) { $error = false; $msg = $msg ? $msg . ',' . $fmios['tmp_name'] . $errorMsg[10] : $fmios['tmp_name'] . $errorMsg[10]; } else { //获取扩展名 //$ext = strrchr($fmios['name'],'.'); $ext = '.png'; $filename = 'adsios'; $path = $dir . $filename . $ext; $arr['img_name'] = $filename . $ext; if (!move_uploaded_file($fmios['tmp_name'], $path)) { $error = false; $msg = $msg ? $msg . ',' . $fmios['tmp_name'] . $errorMsg[11] : $fmios['tmp_name'] . $errorMsg[11]; } else { $imgthumb->imgZoom($path, 960, 576, $dir . $filename . $ext); } } } else { //获取扩展名 //$ext = strrchr($fmios['name'],'.'); $ext = '.png'; $filename = 'adsios'; $path = $dir . $filename . $ext; $arr['img_name'] = $filename . $ext; if (!move_uploaded_file($fmios['tmp_name'], $path)) { $error = false; $msg = $msg ? $msg . ',' . $fmios['tmp_name'] . $errorMsg[11] : $fmios['tmp_name'] . $errorMsg[11]; } else { $imgthumb->imgZoom($path, 960, 576, $dir . $filename . $ext); } } } } else { if ($fmios['error'] > 0) { $error = false; $msg = $msg ? $msg . ',' . $fmios['tmp_name'] . $errorMsg[$fmios['error']] : $fmios['tmp_name'] . $errorMsg[$fmios['error']]; $arr['result'] = 'error'; $arr['msg'] = $errorMsg[$fmios['tmp_name']]; } } break; //ios PPT1 //ios PPT1 case 'pptios1': $error = true; $files = array(); $arr['img_name'] = ''; foreach ($_FILES['file'] as $k => $v) { foreach ($v as $key => $val) { $files[$key][$k] = $val; } } foreach ($files as $key => $file) { if ($file['error'] == 0) { //获取图片信息 $img_info = getimagesize($file['tmp_name']); $radio = floor($img_info[0] / $img_info[1] * 100); if (!($radio > 56 && $radio < 60)) { $error = false; $msg = $msg ? $msg . ',' . $file['tmp_name'] . $errorMsg[9] : $file['tmp_name'] . $errorMsg[9]; //$this->showMsg("pptitips1",$img_info['name'] . $errorMsg[9]); } else { $dir = ROOT . $appid . '/' . 'ios' . '/' . 'shdpi' . '/'; //echo $dir;exit; if (!is_dir($dir)) { if (!mkdir($dir, 0777, true)) { $error = false; $msg = $msg ? $msg . ',' . $file['tmp_name'] . $errorMsg[10] : $file['tmp_name'] . $errorMsg[10]; } } $filename = substr($file['name'], 0, strpos($file['name'], '.')); $ext = '.png'; $path = $dir . $filename . $ext; $newImg = $filename . $ext; $arr['img_name'] = $newImg . ';' . $arr['img_name']; if (!move_uploaded_file($file['tmp_name'], $path)) { $error = false; $msg = $msg ? $msg . ',' . $file['tmp_name'] . $errorMsg[11] : $file['tmp_name'] . $errorMsg[11]; } else { $imgthumb->imgZoom($path, 780, 1344, $dir . $filename . $ext); } } } else { if ($file['error'] > 0) { $error = false; $msg = $msg ? $msg . ',' . $file['tmp_name'] . $errorMsg[$file['error']] : $file['tmp_name'] . $errorMsg[$file['error']]; $arr['result'] = 'error'; $arr['msg'] = $errorMsg[$file['tmp_name']]; } } } break; case 'pptios2': $error = true; $files = array(); $arr['img_name'] = ''; foreach ($_FILES['file'] as $k => $v) { foreach ($v as $key => $val) { $files[$key][$k] = $val; } } foreach ($files as $key => $file) { if ($file['error'] == 0) { //获取图片信息 $img_info = getimagesize($file['tmp_name']); $radio = floor($img_info[0] / $img_info[1] * 100); if (!($radio > 70 && $radio < 75)) { $error = false; $msg = $msg ? $msg . ',' . $file['tmp_name'] . $errorMsg[9] : $file['tmp_name'] . $errorMsg[9]; } else { $dir = ROOT . $appid . '/' . 'ios' . '/' . 'bhdpi' . '/'; if (!is_dir($dir)) { if (!mkdir($dir, 0777, true)) { $error = false; $msg = $msg ? $msg . ',' . $file['tmp_name'] . $errorMsg[10] : $file['tmp_name'] . $errorMsg[10]; } } $filename = substr($file['name'], 0, strpos($file['name'], '.')); //$ext = strrchr($file['name'],'.'); $ext = '.png'; $path = $dir . $filename . $ext; $newImg = $filename . $ext; $arr['img_name'] = $newImg . ';' . $arr['img_name']; if (!move_uploaded_file($file['tmp_name'], $path)) { $error = false; $msg = $msg ? $msg . ',' . $file['tmp_name'] . $errorMsg[11] : $file['tmp_name'] . $errorMsg[11]; } else { $imgthumb->imgZoom($path, 780, 1080, $dir . $filename . $ext); } } } else { if ($file['error'] > 0) { $error = false; $msg = $msg ? $msg . ',' . $file['tmp_name'] . $errorMsg[$file['error']] : $file['tmp_name'] . $errorMsg[$file['error']]; $arr['result'] = 'error'; $arr['msg'] = $errorMsg[$file['tmp_name']]; } } } break; } if ($error) { $arr['result'] = 'success'; $arr['msg'] = $errorMsg['0']; $arr['num'] = $num; } else { $arr['result'] = 'error'; $arr['msg'] = $msg; $arr['num'] = $num; } //json返回 $returnJson = json_encode($arr); die("<script type='text/javascript'>window.parent.callbackFunction('" . $returnJson . "');</script>"); }
public function uploadfileAction() { $istmp = reqnum('istmp', 0); //require_once PUBLIC_PATH.'php'.DIRECTORY_SEPARATOR.'JSON.php'; require_once PUBLIC_PATH . 'psys/php/JSON.php'; //文件保存目录路径 $save_path = NEWS_PATH; //文件保存目录URL $save_url = '/'; //定义允许上传的文件扩展名 $ext_arr = array('image' => array('gif', 'jpg', 'jpeg', 'png', 'bmp'), 'flash' => array('swf', 'flv'), 'media' => array('swf', 'flv', 'mp3', 'wav', 'wma', 'wmv', 'mid', 'avi', 'mpg', 'asf', 'rm', 'rmvb'), 'file' => array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'htm', 'html', 'txt', 'zip', 'rar', 'gz', 'bz2')); //最大文件大小 $max_size = 1000000; //$save_path = realpath($save_path) . '/'; //PHP上传失败 if (!empty($_FILES['imgFile']['error'])) { switch ($_FILES['imgFile']['error']) { case '1': $error = '超过php.ini允许的大小。'; break; case '2': $error = '超过表单允许的大小。'; break; case '3': $error = '图片只有部分被上传。'; break; case '4': $error = '请选择图片。'; break; case '6': $error = '找不到临时目录。'; break; case '7': $error = '写文件到硬盘出错。'; break; case '8': $error = 'File upload stopped by extension。'; break; case '999': default: $error = '未知错误。'; } alert($error); } //有上传文件时 if (empty($_FILES) === false) { //原文件名 $file_name = $_FILES['imgFile']['name']; //服务器上临时文件名 $tmp_name = $_FILES['imgFile']['tmp_name']; //文件大小 $file_size = $_FILES['imgFile']['size']; //检查文件名 if (!$file_name) { $this->alert("请选择文件。"); } //检查目录 if (@is_dir($save_path) === false) { if (!mkdir($save_path)) { $this->alert("上传目录不存在。"); } } //检查目录写权限 if (@is_writable($save_path) === false) { $this->alert("上传目录没有写权限。"); } //检查是否已上传 if (@is_uploaded_file($tmp_name) === false) { $this->alert("上传失败。"); } //检查文件大小 if ($file_size > $max_size) { $this->alert("上传文件大小超过限制。"); } //检查目录名 $dir_name = empty($_GET['dir']) ? 'image' : trim($_GET['dir']); if (empty($ext_arr[$dir_name])) { $this->alert("目录名不正确。"); } //获得文件扩展名 $temp_arr = explode(".", $file_name); $file_ext = array_pop($temp_arr); $file_ext = trim($file_ext); $file_ext = strtolower($file_ext); //检查扩展名 if (in_array($file_ext, $ext_arr[$dir_name]) === false) { $this->alert("上传文件扩展名是不允许的扩展名。\n只允许" . implode(",", $ext_arr[$dir_name]) . "格式。"); } //创建文件夹 if ($dir_name !== '') { $save_path .= $dir_name . "/"; $save_url .= $dir_name . "/"; if (!file_exists($save_path)) { mkdir($save_path); } } $ymd = date("Ymd"); $save_path .= $ymd . "/"; $save_url .= $ymd . "/"; if (!file_exists($save_path)) { mkdir($save_path); } //新文件名 $new_file_name = date("YmdHis") . '_' . rand(10000, 99999) . '.' . $file_ext; //移动文件 $file_path = $save_path . $new_file_name; if (move_uploaded_file($tmp_name, $file_path) === false) { $this->alert("上传文件失败。"); } @chmod($file_path, 0644); $file_url = $save_url . $new_file_name; if ($istmp) { require_once COMMON_PATH . "XThumb.php"; $imgtmp = new XThumb(); $target = $save_path . 'tmp_' . $new_file_name; $imgtmp->imgZoom($file_path, '180', '120', $target); $file_url = $save_url . 'tmp_' . $new_file_name; } header('Content-type: text/html; charset=UTF-8'); $json = new Services_JSON(); echo $json->encode(array('error' => 0, 'url' => $file_url)); exit; } }
public function imgcutAction() { $dir = ADDS_PATH; $filename = reqstr('file', ''); $type = reqstr('type', ''); $filePath = $dir . $filename; //获取原始文件后缀 $file_ext = pathinfo($filePath, PATHINFO_EXTENSION); //获取原始文件名 $file_name = pathinfo($filePath, PATHINFO_FILENAME); if ($file_ext == 'jpg') { $file_ext = 'jpeg'; } //创建画布函数重组 $d_func = 'imagecreatefrom' . $file_ext; $res = $d_func($filePath); $dst_x = reqnum('x', 0); $dst_y = reqnum('y', 0); $dst_w = reqnum('w', 0); $dst_h = reqnum('h', 0); $dst = imagecreatetruecolor($dst_w, $dst_h); imagecopyresampled($dst, $res, 0, 0, $dst_x, $dst_y, $dst_w, $dst_h, $dst_w, $dst_h); //图片保存函数重组 $s_func = 'image' . $file_ext; $flag = true; if ($file_ext == 'jpeg') { $flag = $s_func($dst, $filePath, 100); } else { $flag = $s_func($dst, $filePath); } if ($flag) { //图片缩略处理 $XImg = new XThumb(); if ($type) { switch ($type) { case 1: $XImg->imgZoom($filePath, 234, 168, $dir . $file_name . '-android-1' . $file_ext); $XImg->imgZoom($filePath, 264, 197, $dir . $file_name . '-android-2' . $file_ext); $XImg->imgZoom($filePath, 352, 260, $dir . $file_name . '-android-3' . $file_ext); $XImg->imgZoom($filePath, 528, 390, $dir . $file_name . '-android-4' . $file_ext); break; case 2: $XImg->imgZoom($filePath, 471, 390, $dir . $file_name . '-ios-1' . $file_ext); break; case 3: $XImg->imgZoom($filePath, 471, 258, $dir . $file_name . '-ios-2' . $file_ext); break; case 4: $XImg->imgZoom($filePath, 480, 252, $dir . $file_name . '-android-1' . $file_ext); $XImg->imgZoom($filePath, 540, 288, $dir . $file_name . '-android-2' . $file_ext); $XImg->imgZoom($filePath, 720, 380, $dir . $file_name . '-android-3' . $file_ext); $XImg->imgZoom($filePath, 1080, 570, $dir . $file_name . '-android-4' . $file_ext); break; case 5: $XImg->imgZoom($filePath, 960, 576, $dir . $file_name . '-ios' . $file_ext); break; } } echo "<script type='text/javascript'>window.parent.cutAfter('" . $filename . "');</script>"; //echo "<script type='text/javascript'>window.parent.cutAfter('1.png');</script>"; } imagedestroy($dst); imagedestroy($res); }