$v) { if(is_file($v)){ @unlink($v); } } } } /** * 二进制上传数据 */ public function upload_binaryFile() { $data = file_get_contents("php://input"); $get_data = I('get.'); $dir = I('get.dir','goods'); $type = I('get.type'); $name = I('get.name'); $image_dir = ROOT_PATH.'Uploads/image/'.$dir; $image_dir .= '/'.date('Y-m-d').'/'; $file_path = C('SITE_URL').'/Uploads/image/'.$dir.'/'.date('Y-m-d').'/'; $kufile_path = $dir.'/'.date('Y-m-d').'/'; RecursiveMkdir($image_dir); $file_name = md5($name.time()).'.png'; switch($type) { case 'image/jpeg': $file_name = md5($name.time()).'.jpg'; break; case 'image/png': $file_name = md5($name.time()).'.png'; break; } $thumb_arr = explode('.',$file_name); $thumb_image_name = $thumb_arr[0].'_thumb.'.$thumb_arr[1]; file_put_contents($image_dir.$file_name, $data); //fileinfo 检测begin $fip = finfo_open(FILEINFO_MIME_TYPE); $min_result = finfo_file($fip , $image_dir.$file_name ); fclose( $fip ); $min_type_arr = array(); $min_type_arr[] = 'image/jpeg'; $min_type_arr[] = 'image/gif'; $min_type_arr[] = 'image/jpg'; $min_type_arr[] = 'image/png'; $min_type_arr[] = 'video/mp4'; if( !in_array($min_result , $min_type_arr ) ) { die(); } $image = new \Think\Image(); $image->open($image_dir.$file_name); //按照原图的比例生成一个最大为400*400的缩略图并保存为thumb.jpg, 实际会按比例自动缩放 $image->thumb(400, 400)->save($image_dir.$thumb_image_name); ////{"filePath":"\/Uploads\/image\/goods\/2017-07-05\/","fileName":"7e414de26624c0a5ac7cd5b9bd5edfe3.jpg"} $result = array('filePath' =>$file_path ,'kufile_path' => $kufile_path,'fileName' => $file_name); echo json_encode($result); die(); } /** *删除 旧的原图和缩略图,修改的情况下使用 * */ public function del_old_image(){ $old_gallery_image=I('post.old_gallery_image'); $old_product_image=I('post.old_product_image'); if(!empty($old_gallery_image)){ $old_image=I('post.old_gallery_image'); $thumb_dir=ROOT_PATH.'Uploads/image/cache/gallery/'; $image_dir=ROOT_PATH.'Uploads/image/gallery/'; }elseif(!empty($old_product_image)){ $old_image=I('post.old_product_image'); $thumb_dir=ROOT_PATH.'Uploads/image/cache/product/'; $image_dir=ROOT_PATH.'Uploads/image/product/'; } if(!empty($old_image)){ list($base_name, $ext) = explode(".", $old_image); $image = explode("/", $base_name); $image_name=end($image); $del_image=array(); $del_image[]=$image_dir.$image_name.'.'.$ext;//原图 $del_image[]=$thumb_dir.$image_name.'-100x100.'.$ext;//100x100 foreach ($del_image as $k => $v) { if(is_file($v)){ @unlink($v); } } } } public function file() { $do = I('get.do'); if('group_list' == $do) { $uid = 1; if( is_agent_login() ) { $uid = is_agent_login(); $uid = $uid +1; } $group_list = M('core_attachment_group')->where( array('uid' => $uid) )->order('id asc')->select(); $res = array( 'message' => array( 'errno' => 0, 'message' => $group_list ), 'redirect' => '', 'type' => 'ajax' ); echo json_encode($res); die(); } if( 'change_group' == $do ) { $name = I('request.name'); $id = I('request.id'); M('core_attachment_group')->where( array('id' => $id) )->save( array('name' => $name) ); //{"message":{"errno":0,"message":"\u66f4\u65b0\u6210\u529f"},"redirect":"","type":"ajax"} $res = array('message' => array('errno' => 0, 'message' => '更新成功'), 'redirect' =>'','type' => 'ajax' ); echo json_encode( $res ); die(); } if('add_group' == $do) { $core_attachment_group_data = array(); $core_attachment_group_data['name'] = '未命名'; $core_attachment_group_data['uniacid'] = 0; $core_attachment_group_data['uid'] = 1; $id = M('core_attachment_group')->add( $core_attachment_group_data ); $res = array('message' => array('errno' => 0, 'message' => array('id'=>$id), 'redirect' =>'','type' => 'ajax' ) ); echo json_encode($res); //{"message":{"errno":0,"message":{"id":"27"}},"redirect":"","type":"ajax"} die(); } if ($do == 'move_to_group') { $group_id = I('request.id'); $ids = I('request.keys'); M('core_attachment')->where( array('id' => array('in', $ids ) ) )->save( array('group_id' => $group_id) ); $res = array('message' => array('errno' => 0, 'message' => '删除成功'), 'redirect' =>'','type' => 'ajax' ); echo json_encode( $res ); die(); } if( 'del_group' == $do ) { $id = I('request.id'); M('core_attachment_group')->where( array('id' => $id) )->delete(); $res = array('message' => array('errno' => 0, 'message' => '删除成功'), 'redirect' =>'','type' => 'ajax' ); echo json_encode( $res ); die(); } if ($do == 'video') { $year = I('get.year'); $month = I('get.month'); $page = I('get.page',1); $groupid = I('get.groupid',1); $page_size = 10; $page = max(1, $page); $offset = ($page -1) * $page_size; $where = " type=2 "; if ($year || $month) { $start_time = strtotime("{$year}-{$month}-01"); $end_time = strtotime('+1 month', $start_time); //createtime $where .= " createtime >= {$start_time} and createtime < {$end_time} "; } $total = M('core_attachment')->where($where)->count(); $list = M('core_attachment')->where( $where )->order('id desc ')->limit($offset, $page_size)->select(); if (!empty($list)) { foreach ($list as &$meterial) { $meterial['url'] = tomedia($meterial['attachment']); unset($meterial['uid']); } } $pager = pagination($total, $page, $page_size,'',$context = array('before' => 5, 'after' => 4, 'isajax' => 1)); $result = array('items' => $list, 'pager' => $pager); $json_data = array(); $json_data['message'] = array( 'errno' =>0, 'message' => $result ); echo json_encode( $json_data ); die(); } if ($do == 'delete') { $ids_arr = I('request.id'); foreach($ids_arr as $material_id) { M('core_attachment')->where( array('id' => $material_id) )->delete(); } echo '{"message":{"errno":"0","message":"\u5220\u9664\u7d20\u6750\u6210\u529f"},"redirect":"","type":"ajax"}'; die(); } if ($do == 'image') { $year = I('get.year'); $month = I('get.month'); $page = I('get.page',1); $groupid = I('get.groupid',0); $page_size = 10; $page = max(1, $page); $offset = ($page -1) * $page_size; $where = " type=1 "; if( !empty($groupid) && $groupid > 0 ) { $where .= " and group_id = {$groupid} "; } if($groupid == 0 ){ $where .= " and group_id = -1 "; } if ($year || $month) { $start_time = strtotime("{$year}-{$month}-01"); $end_time = strtotime('+1 month', $start_time); //createtime $where .= " and createtime >= {$start_time} and createtime < {$end_time} "; } $uid = 1; if( is_agent_login() ) { $uid = is_agent_login(); $uid = $uid +1; } $where .= " and uid = {$uid} "; $total = M('core_attachment')->where($where)->count(); $list = M('core_attachment')->where( $where )->order('id desc ')->limit($offset, $page_size)->select(); if (!empty($list)) { foreach ($list as &$meterial) { $meterial['url'] = tomedia($meterial['attachment']); unset($meterial['uid']); //$core_data['filename'] = base64_encode($originname); if( $meterial['filename'] == base64_encode(base64_decode($meterial['filename'])) ) { $meterial['filename'] = base64_decode($meterial['filename']); } } } $pager = pagination($total, $page, $page_size,'',$context = array('before' => 5, 'after' => 4, 'isajax' => 1)); $result = array('items' => $list, 'pager' => $pager); $json_data = array(); $json_data['message'] = array( 'errno' =>0, 'message' => $result ); echo json_encode( $json_data ); die(); } if('upload' == $do) { $dir='goods/'; $type = I('get.upload_type'); $type = in_array($type, array('image','audio','video')) ? $type : 'image'; if (empty($_FILES['file']['name'])) { $result['message'] = '上传失败, 请选择要上传的文件!'; die(json_encode($result)); } if ($_FILES['file']['error'] != 0) { $result['message'] = '上传失败, 请重试.'; die(json_encode($result)); } $ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION); $ext = strtolower($ext); $size = intval($_FILES['file']['size']); $originname = $_FILES['file']['name']; //fileinfo 检测begin $fip = finfo_open(FILEINFO_MIME_TYPE); $min_result = finfo_file($fip , $_FILES['file']['tmp_name']); fclose( $fip ); $min_type_arr = array(); $min_type_arr[] = 'image/jpeg'; $min_type_arr[] = 'image/gif'; $min_type_arr[] = 'image/jpg'; $min_type_arr[] = 'image/png'; $min_type_arr[] = 'video/mp4'; if( !in_array($min_result , $min_type_arr ) ) { die(); } //fileinfo 检测end if( !in_array($ext, array('jpg', 'gif', 'png', 'jpeg','mp4') ) ) { die(); } $upload = new \Think\Upload();// 实例化上传类 $upload->maxSize = 31457280 ;// 设置附件上传大小 $upload->exts = array('jpg', 'gif', 'png', 'jpeg','mp4');// 设置附件上传类型 $upload->rootPath = ATTACHMENT_ROOT.$dir; RecursiveMkdir($upload->rootPath); $info = $upload->upload(); if(!$info) { $result['message'] = $file['message']; die(json_encode($result)); } $filename = $dir.date('Y-m-d').'/'.$info['file']['savename']; $fullname = ATTACHMENT_ROOT . $filename; //ext if($ext == 'mp4'){ if(filesize($fullname)>30000000){ $result['message'] = '上传失败, 上传的视频应不大于30M!'; die(json_encode($result)); } }else{ if(filesize($fullname)>10000000){ $result['message'] = '上传失败, 上传的图片应不大于10M!'; die(json_encode($result)); } } //attachment_type $attachment_type_arr = M('lionfish_comshop_config')->where( array('name' => 'attachment_type') )->find(); if( $attachment_type_arr['value'] == 1 ) { save_image_to_qiniu($fullname,'Uploads/image/'.$filename); }else if( $attachment_type_arr['value'] == 2 ){ save_image_to_alioss($fullname,'Uploads/image/'.$filename); }else if( $attachment_type_arr['value'] == 3 ) { save_image_to_txyun($fullname,'Uploads/image/'.$filename); } $group_id = I('get.group_id'); $info = array( 'name' => $originname, 'ext' => $ext, 'filename' => $filename, 'attachment' => $filename, 'url' => tomedia($filename), 'is_image' => $type == 'image' ? 1 : 2, 'filesize' => filesize($fullname), 'group_id' => $group_id ); $uid = 1; if( is_agent_login() ) { $uid = is_agent_login(); $uid = $uid +1; } $core_data = array(); $core_data['uniacid'] = 0; $core_data['uid'] = $uid; $core_data['filename'] = base64_encode($originname); $core_data['attachment'] = $filename; $core_data['type'] = $type == 'image' ? 1 : 2; $core_data['createtime'] = time(); $core_data['module_upload_dir'] = ''; $core_data['group_id'] = $group_id; M('core_attachment')->add($core_data); $size = getimagesize($fullname); $info['width'] = $size[0]; $info['height'] = $size[1]; $info['state'] = 'SUCCESS'; die(json_encode($info)); } if('image' == $do) { } } /** *上传图片 */ public function upload_image(){ $dir=I('get.dir'); $dir .= '/'.date('Y-m-d'); $this->del_old_image(); $upload = new \Think\Upload();// 实例化上传类 $image_dir=ROOT_PATH.'Uploads/image/'.$dir; RecursiveMkdir($image_dir); $min_type_arr = array(); $min_type_arr[] = 'image/jpeg'; $min_type_arr[] = 'image/gif'; $min_type_arr[] = 'image/jpeg'; $min_type_arr[] = 'image/png'; $min_type_arr[] = 'video/mp4'; $upload->autoSub = false; $upload->maxSize = 3145728 ;// 设置附件上传大小 $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型 $upload->mimes = $min_type_arr;// 设置附件上传类型 $upload->rootPath = $image_dir.'/'; $info = $upload->upload(); if(!$info) { $data['result'] = false; $this->ajaxReturn($data); }else{// 上传成功 $filename=$dir.'/'.$info['file']['savepath'].$info['file']['savename']; $data['image_thumb'] = resize($filename, 100, 100); $data['image'] = $filename; $this->ajaxReturn($data); } } //用于ckeditor图片上传 function ckupload(){ $upload = new \Think\Upload();// 实例化上传类 $upload->maxSize = 3145728 ;// 设置附件上传大小 $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型 $upload->rootPath = ROOT_PATH.'Uploads/image/goods_description/'; RecursiveMkdir($upload->rootPath); $info = $upload->upload(); if(!$info) { // 上传错误提示错误信息 echo ""; }else{// 上传成功 $n=$_GET['CKEditorFuncNum']; $savepath=C('SITE_URL').'/Uploads/image/goods_description/'. $info['upload']['savepath'].$info['upload']['savename']; //下面的输出,会自动的将上传成功的文件路径,返回给编辑器。 echo ""; } } }