www.gusucode.com > mcms手机网站系统 v3.1源码程序 > mcms_v3.1.0/upload/static/upload/uploadify.php
<?php /* * MCMS Copyright (c) 2012-2013 ZhangYiYeTai Inc. * * http://www.mcms.cc * * The program developed by loyjers core architecture, individual all rights reserved, * if you have any questions please contact loyjers@126.com */ $session_name = session_name(); if (!isset($_POST[$session_name])) { die('{"code":1,"msg":"没有传递用户标识"}'); } else { session_id($_POST[$session_name]); session_start(); } require_once(dirname(__FILE__) . "/../../init.php"); //公用引导启动文件 require_once(dirname(__FILE__) . "/../../class/img.class.php"); require_once(dirname(__FILE__) . "/../../class/upload.class.php"); // 验证 $verifyToken = md5(UPLOAD_VERIFY . $_POST['timestamp']); if (empty($_FILES) || $_POST['token'] != $verifyToken) die('{"code":1,"msg":"上传数据提交失败"}'); //登录用户才可以上传 if (!isset($_SESSION['user']) || !is_array($_SESSION['user'])) die('{"code":1,"msg":"没有上传权限"}'); $dbm=new db_mysql(); // 判断文件重复 $sql="select * from ".TB_PRE."file where file_md5='".md5_file($_FILES['Filedata']['tmp_name'])."' limit 1"; $rs=$dbm->query($sql); if(count($rs['list'])==1){ $file=$_FILES['Filedata']; $data['code']=0; $data['msg']='上传成功'; $data['url']=$rs['list'][0]['file_url']; $data['vid']=isset($_POST['vid'])?$_POST['vid']:''; $data['title']=pathinfo($file['name'], PATHINFO_FILENAME); $data['ext']=$rs['list'][0]['file_extension']; $data['md5']=$rs['list'][0]['file_md5']; die(H::json_encode_ch($data)); } $file_size=$_FILES['Filedata']['size'];//文件大小 if($file_size>=1024*1024*100){ $file_type='big'; }else{ $file_type='small'; } // 上传目录自定义 if (isset($_POST['dir'])) { $upload_path=$_POST['dir']; }else{ $upload_path="files"; } //避免JS传入不允许的目录 $upload_path=str_replace(array('.','/'),'',$upload_path); $file_types = explode(',',UPLOAD_EXT); // File extensions // 接收图片上传 $rnd_path=H::rnd_save_path(); $save_path = './../'.SKIN.'/'.$upload_path.'/'.$file_type.'/'.$rnd_path;//保存路径 $save_path_thumb='./../'.SKIN.'/preview/'.$upload_path.'/'.$file_type.'/'.$rnd_path;//缩略图 $upload_config = array(); $upload_config['savePath'] = $save_path; //图片保存路径 $upload_config['maxSize'] = 1024*1024*10; $upload_config['allowExts'] = $file_types; // 判断图片保存文件夹是否存在,不存在则创建 if (!is_dir($upload_config['savePath'])) H :: mkdirs($upload_config['savePath']); //是否打水印 if(defined('WATER_MARK_ENABLE') && WATER_MARK_ENABLE && isset($_POST['water'])){ if(in_array(strtolower(pathinfo($_FILES['Filedata']['name'],PATHINFO_EXTENSION)),array('gif','jpg','jpeg','png','bmp'))) { //开始收集参数 $arr_water_water = array(); $arr_water["savename"]=''; $arr_water["watermarktype"] = 1;//水印类型(图片1或文字0) $arr_water["watermarkwidth"] = WATER_MARK_WIDTH;//被打水印的图片的最小宽度 少于该尺寸则不加水印 $arr_water["watermarkheight"] = WATER_MARK_HEIGHT;//被打水印的图片的最小高度 少于该尺寸则不加水印 $arr_water["watermarkimg"] = WATER_MARK_IMG;//水印图片 $arr_water["watermarkpct"] = WATER_MARK_PCT; //水印透明度 $arr_water["watermarkquality"] = WATER_MARK_QUALITY; //JPEG水印图像质量 $arr_water["watermarkpos"] = WATER_MARK_POS;//水印位置 //print_r($arr_water); $upload_config['water'] = $arr_water; } } // 是否生成缩略图 $thumb_width=isset($_POST['thumb_width'])?intval($_POST['thumb_width']):0; $thumb_height=isset($_POST['thumb_height'])?intval($_POST['thumb_height']):0; if ($thumb_width>0 && $thumb_height>0 ) { $upload_config['thumb'] = true; //是否生成缩略图 $upload_config['thumbMaxWidth'] = $thumb_width; // 缩略图最大宽度 $upload_config['thumbMaxHeight'] = $thumb_height; // 缩略图最大高度 $upload_config['thumbPrefix'] = ''; // 缩略图前缀 $upload_config['thumbPath'] = $save_path_thumb; // 缩略图保存路径 if (!is_dir($upload_config['thumbPath'])) H :: mkdirs($upload_config['thumbPath']); }else{ //图片自动生成缩略图 300*300 if(in_array(strtolower(pathinfo($_FILES['Filedata']['name'],PATHINFO_EXTENSION)),array('gif','jpg','jpeg','png','bmp'))){ $upload_config['thumb'] = true; //是否生成缩略图 $upload_config['thumbMaxWidth'] = 300; // 缩略图最大宽度 $upload_config['thumbMaxHeight'] = 300; // 缩略图最大高度 $upload_config['thumbPrefix'] = ''; // 缩略图前缀 $upload_config['thumbPath'] = $save_path_thumb; // 缩略图保存路径 if (!is_dir($upload_config['thumbPath'])) H :: mkdirs($upload_config['thumbPath']); } } //print_r($_POST); // 开始上传 $upload = new UploadFile($upload_config); // 返回结果 $result = array(); $data=array(); if (!$upload -> upload()) { $result = $upload -> getErrorMsg(); $data['code']=1; $data['msg']=$result; } else { $result = $upload -> getUploadFileInfo(); $file=$result[0]; unset($file['type']);unset($file['key']); $fields['file_md5']=$file['hash']; $fields['file_oname']=pathinfo($file['name'], PATHINFO_FILENAME); $fields['file_name']=pathinfo($file['savename'], PATHINFO_FILENAME); $fields['file_extension']=$file['extension']; $fields['file_size']=$file['size']; $fields['create_time']=time(); $fields['file_url']=DOMAIN_UPLOAD.substr($file['savepath'],4).$file['savename']; $dbm->single_insert(TB_PRE.'file',$fields); $data['code']=0; $data['msg']='上传成功'; $data['url']=$fields['file_url']; $data['vid']=isset($_POST['vid'])?$_POST['vid']:''; $data['title']=$fields['file_oname']; $data['ext']=$fields['file_extension']; $data['md5']=$fields['file_md5']; } die(H::json_encode_ch($data)); ?>