savePath = I('GET.savepath','temp').'/';
        $this->savePath1 = I('GET.savepath1','');
        error_reporting(E_ERROR | E_WARNING);
    }
    public function index(){
        $CONFIG2 = json_decode(preg_replace("/\/\*[\s\S]+?\*\//", "", file_get_contents("./public/plugins/Ueditor/php/config.json")), true);
        $action = $_GET['action'];
        switch ($action) {
            case 'config':
                $result =  json_encode($CONFIG2);
                break;
            /* 上传图片 */
            case 'uploadimage':
                $fieldName = $CONFIG2['imageFieldName'];
                $result = $this->upFile($fieldName);
                break;
            /* 上传涂鸦 */
            case 'uploadscrawl':
                $config = array(
                    "pathFormat" => $CONFIG2['scrawlPathFormat'],
                    "maxSize" => $CONFIG2['scrawlMaxSize'],
                    "allowFiles" => $CONFIG2['scrawlAllowFiles'],
                    "oriName" => "scrawl.png"
                );
                $fieldName = $CONFIG2['scrawlFieldName'];
                $base64 = "base64";
                $result = $this->upBase64($config,$fieldName);
                break;
            /* 上传视频 */
            case 'uploadvideo':
                $fieldName = $CONFIG2['videoFieldName'];
                $result = $this->upFile($fieldName);
                break;
            /* 上传文件 */
            case 'uploadfile':
                $fieldName = $CONFIG2['fileFieldName'];
                $result = $this->upFile($fieldName);
                break;
            /* 列出图片 */
            case 'listimage':
                $allowFiles = $CONFIG2['imageManagerAllowFiles'];
                $listSize = $CONFIG2['imageManagerListSize'];
                $path = $CONFIG2['imageManagerListPath'];
                $get =$_GET;
                $result =$this->fileList($allowFiles,$listSize,$get);
                break;
            /* 列出文件 */
            case 'listfile':
                $allowFiles = $CONFIG2['fileManagerAllowFiles'];
                $listSize = $CONFIG2['fileManagerListSize'];
                $path = $CONFIG2['fileManagerListPath'];
                $get = $_GET;
                $result = $this->fileList($allowFiles,$listSize,$get);
                break;
            /* 抓取远程文件 */
            case 'catchimage':
                $config = array(
                    "pathFormat" => $CONFIG2['catcherPathFormat'],
                    "maxSize" => $CONFIG2['catcherMaxSize'],
                    "allowFiles" => $CONFIG2['catcherAllowFiles'],
                    "oriName" => "remote.png"
                );
                $fieldName = $CONFIG2['catcherFieldName'];
                /* 抓取远程图片 */
                $list = array();
                isset($_POST[$fieldName]) ? $source = $_POST[$fieldName] : $source = $_GET[$fieldName];
                foreach($source as $imgUrl){
                    $info = json_decode($this->saveRemote($config,$imgUrl),true);
                    array_push($list, array(
                        "state" => $info["state"],
                        "url" => $info["url"],
                        "size" => $info["size"],
                        "title" => htmlspecialchars($info["title"]),
                        "original" => htmlspecialchars($info["original"]),
                        "source" => htmlspecialchars($imgUrl)
                    ));
                }
                $result = json_encode(array(
                    'state' => count($list) ? 'SUCCESS':'ERROR',
                    'list' => $list
                ));
                break;
            default:
                $result = json_encode(array(
                    'state' => '请求地址出错'
                ));
                break;
        }
        /* 输出结果 */
        if(isset($_GET["callback"])){
            if(preg_match("/^[\w_]+$/", $_GET["callback"])){
                echo htmlspecialchars($_GET["callback"]).'('.$result.')';
            }else{
                echo json_encode(array(
                    'state' => 'callback参数不合法'
                ));
            }
        }else{
            echo $result;
        }
    }
    public function getContent()
    {
        echo '
            
            ";
        $myEditor = $this->request->param('myEditor');
        $content = htmlspecialchars(stripslashes($myEditor));
        echo "
" . htmlspecialchars_decode($content) . "
";
    }
    /***
    public function fileUp()
    {
        $config = array(
            "savePath" => 'File/',
            "maxSize" =>  20000000, // 单位B
            "exts" => explode(",",  'zip,rar,doc,docx,zip,pdf,txt,ppt,pptx,xls,xlsx'),
            "subName" => $this->sub_name,
        );
        $upload = new Upload($config);
        $info = $upload->upload();
        if ($info) {
            $state = "SUCCESS";
        } else {
            $state = "ERROR" . $upload->getError();
        }
        $return_data['url'] = $info['upfile']['urlpath'];
        $return_data['fileType'] = $info['upfile']['ext'];
        $return_data['original'] = $info['upfile']['name'];
        $return_data['state'] = $state;
        $this->ajaxReturn($return_data,'JSON');
    }***/
    //上传文件
    private function upFile($fieldName){
        $file = request()->file('file');
        if(empty($file)){
            $file = request()->file('upfile');
        }
        $result = true;
        if (true !== $result || empty($file)) {
            $state = "ERROR" . $result;
            return json_encode(['state' =>$state]);
        }else{
            // 移动到框架应用根目录/public/uploads/ 目录下
            $this->savePath = $this->savePath.date('Y').'/'.date('m-d').'/';
            // 使用自定义的文件保存规则
            $info = $file->rule(function ($file) {
                return  md5(mt_rand());
            })->move('public/upload/'.$this->savePath);
            //保存到存储云
            vendor('qcloudcos.myqcloudcos');
            $resfolder=Myqcloudcos::statFolder('wxd',UPLOAD_PATH. $this->savePath);
            if ($resfolder && $resfolder['code']!=0)//不存在创建
            {
                Myqcloudcos::createFolder('wxd',UPLOAD_PATH. $this->savePath);
            }
            //上传到腾讯云
            $localpath=ROOT_PATH.'/public/upload/'.$this->savePath.$info->getSaveName();
            $ypath='/'.UPLOAD_PATH.$this->savePath.$info->getSaveName();
            $res=Myqcloudcos::upload('wxd',$localpath,$ypath);
            if($res && $res['code']==0){
            }
        }
        if($info){
            $data = array(
                'state' => 'SUCCESS',
                'url' => QCLOUD_IMGURL.'/public/upload/'.$this->savePath.$info->getSaveName(),
                'title' => $info->getFilename(),
                'original' => $info->getFilename(),
                'type' => '.' . $info->getExtension(),
                'size' => $info->getSize(),
            );
        }else{
            $data = array('state' => 'ERROR'.$file->getError());
        }
        return json_encode($data);
    }
    /**
     * 获取远程图片
     */
    public function getRemoteImage()
    {
        header("Content-Type: text/html; charset=utf-8");
        //远程抓取图片配置
        $config = array(
            "savePath" => UPLOAD_PATH . 'remote/' . date('Y') . '/' . date('m') . '/', //保存路径
            "allowFiles" => array(".gif", ".png", ".jpg", ".jpeg", ".bmp"), //文件允许格式
            "maxSize" => 20000000,
        );
        $upfile = $this->request->param('upfile');
        $uri = htmlspecialchars($upfile);
        $uri = str_replace("&", "&", $uri);
        $this->getRemoteImage2($uri, $config);
    }
    //抓取远程图片
    private function saveRemote($config,$fieldName){
        $imgUrl = htmlspecialchars($fieldName);
        $imgUrl = str_replace("&","&",$imgUrl);
        //http开头验证
        if(strpos($imgUrl,"http") !== 0){
            $data=array(
                'state' => '链接不是http链接',
            );
            return json_encode($data);
        }
        //获取请求头并检测死链
        $heads = get_headers($imgUrl);
        if(!(stristr($heads[0],"200") && stristr($heads[0],"OK"))){
            $data=array(
                'state' => '链接不可用',
            );
            return json_encode($data);
        }
        //格式验证(扩展名验证和Content-Type验证)
        $fileType = strtolower(strrchr($imgUrl,'.'));
        if(!in_array($fileType,$config['allowFiles']) || stristr($heads['Content-Type'],"image")){
            $data=array(
                'state' => '链接contentType不正确',
            );
            return json_encode($data);
        }
        //打开输出缓冲区并获取远程图片
        ob_start();
        $context = stream_context_create(
            array('http' => array(
                'follow_location' => false // don't follow redirects
            ))
        );
        readfile($imgUrl,false,$context);
        $img = ob_get_contents();
        ob_end_clean();
        preg_match("/[\/]([^\/]*)[\.]?[^\.\/]*$/",$imgUrl,$m);
        $dirname = './public/upload/remote/';
        $file['oriName'] = $m ? $m[1] : "";
        $file['filesize'] = strlen($img);
        $file['ext'] = strtolower(strrchr($config['oriName'],'.'));
        $file['name'] = uniqid().$file['ext'];
        $file['fullName'] = $dirname.$file['name'];
        $fullName = $file['fullName'];
        $fname='/public/upload/remote/'.$file['name'];
        //检查文件大小是否超出限制
        if($file['filesize'] >= ($config["maxSize"])){
            $data=array(
                'state' => '文件大小超出网站限制',
            );
            return json_encode($data);
        }
        //创建目录失败
        if(!file_exists($dirname) && !mkdir($dirname,0777,true)){
            $data=array(
                'state' => '目录创建失败',
            );
            return json_encode($data);
        }else if(!is_writeable($dirname)){
            $data=array(
                'state' => '目录没有写权限',
            );
            return json_encode($data);
        }
        //移动文件
        if(!(file_put_contents($fullName, $img) && file_exists($fullName))){ //移动失败
            $data=array(
                'state' => '写入文件内容错误',
            );
            return json_encode($data);
        }else{
            //保存到存储云
            vendor('qcloudcos.myqcloudcos');
            $resfolder=Myqcloudcos::statFolder('wxd',UPLOAD_PATH. $this->savePath);
            if ($resfolder && $resfolder['code']!=0)//不存在创建
            {
                Myqcloudcos::createFolder('wxd',UPLOAD_PATH. $this->savePath);
            }
            //上传到腾讯云
            $localpath=ROOT_PATH.$fname;
            $ypath='/'.UPLOAD_PATH.$fname;
            $res=Myqcloudcos::upload('wxd',$localpath,$ypath);
            //移动成功
            $data=array(
                'state' => 'SUCCESS',
                'url' => "https://mshopimg.yolipai.net".$fname,
                'title' => $file['name'],
                'original' => $file['oriName'],
                'type' => $file['ext'],
                'size' => $file['filesize'],
            );
        }
        return json_encode($data);
    }
    /**
     * 远程抓取
     * @param $uri
     * @param $config
     */
    public function getRemoteImage2($uri, $config)
    {
        //忽略抓取时间限制
        set_time_limit(0);
        //ue_separate_ue  ue用于传递数据分割符号
        $imgUrls = explode("ue_separate_ue", $uri);
        $tmpNames = array();
        foreach ($imgUrls as $imgUrl) {
            //http开头验证
            if (strpos($imgUrl, "http") !== 0) {
                array_push($tmpNames, "https error");
                continue;
            }
            //sae环境 不兼容
            if (!defined('SAE_TMP_PATH')) {
                //获取请求头
                $heads = get_headers($imgUrl);
                //死链检测
                if (!(stristr($heads[0], "200") && stristr($heads[0], "OK"))) {
                    array_push($tmpNames, "get_headers error");
                    continue;
                }
            }
            
            //格式验证(扩展名验证和Content-Type验证)
            $fileType = strtolower(strrchr($imgUrl, '.'));
            if (!in_array($fileType, $config['allowFiles']) || stristr($heads['Content-Type'], "image")) {
                array_push($tmpNames, "Content-Type error");
                continue;
            }
            //打开输出缓冲区并获取远程图片
            ob_start();
            $context = stream_context_create(
                array(
                    'http' => array(
                        'follow_location' => false // don't follow redirects
                    )
                )
            );
            //请确保php.ini中的fopen wrappers已经激活
            readfile($imgUrl, false, $context);
            $img = ob_get_contents();
            ob_end_clean();
            //大小验证
            $uriSize = strlen($img); //得到图片大小
            $allowSize = 1024 * $config['maxSize'];
            if ($uriSize > $allowSize) {
                array_push($tmpNames, "maxSize error");
                continue;
            }
            $savePath = $config['savePath'];
            if (!defined('SAE_TMP_PATH')) {
                //非SAE
                //创建保存位置
                if (!file_exists($savePath)) {
                    mkdir($savePath, 0777, true);
                }
                //写入文件
                $tmpName = $savePath . rand(1, 10000) . time() . strrchr($imgUrl, '.');
                try {
                    File::writeFile($tmpName, $img, "a");
                    array_push($tmpNames,  '/' . $tmpName);
                } catch (\Exception $e) {
                    array_push($tmpNames, "error");
                }
            } else {
                //SAE
                $Storage = new \SaeStorage();
                $domain = C('SaeStorage');
                $destFileName = 'remote/' . date('Y') . '/' . date('m') . '/' . rand(1, 10000) . time() . strrchr($imgUrl, '.');
                $result = $Storage->write($domain, $destFileName, $img, -1);
                Log::write('$destFileName:' . $destFileName);
                if ($result) {
                    array_push($tmpNames, $result);
                } else {
                    array_push($tmpNames, "not supported");
                }
            }
        }
        /**
         * 返回数据格式
         * {
         *   'url'   : '新地址一ue_separate_ue新地址二ue_separate_ue新地址三',
         *   'srcUrl': '原始地址一ue_separate_ue原始地址二ue_separate_ue原始地址三',
         *   'tip'   : '状态提示'
         * }
         */
        $return_data['url'] = implode("ue_separate_ue", $tmpNames);
        $return_data['tip'] = '远程图片抓取成功!';
        $return_data['srcUrl'] = $uri;
        $this->ajaxReturn($return_data);
    }
    /**
     * 无需移植
     * @function getMovie
     */
    public function getMovie()
    {
        $key = C("tudouSearchKey");
        $type = I('post.videoType');
        $html = file_get_contents('http://api.tudou.com/v3/gw?method=item.search&appKey=myKey&format=json&kw=' .
        $key . '&pageNo=1&pageSize=20&channelId=' . $type . '&inDays=7&media=v&sort=s');
        echo $html;
    }
    /**
     * @function imageManager
     */
    public function imageManager()
    {
        header("Content-Type: text/html; charset=utf-8");
        //需要遍历的目录列表,最好使用缩略图地址,否则当网速慢时可能会造成严重的延时
        $paths = array(UPLOAD_PATH.$this->savePath."/".$this->savePath1."/");
        $action = $this->request->param('action');
        $action = htmlspecialchars($action);
        if ($action == "get") {
            if (!defined('SAE_TMP_PATH')) {
                $files = array();
                include_once 'application/common/util/File.class.php';
                foreach ($paths as $path) {
                    $tmp = File::getFiles($path);
                    if ($tmp) {
                        $files = array_merge($files, $tmp);
                    }
                }
                if (!count($files)) return;
                rsort($files, SORT_STRING);
                $str = "";
                foreach ($files as $file) {
                    $str .=  '/' . $file . "ue_separate_ue";
                }
                echo $str;
            } else {
                // SAE环境下
                $st = new \SaeStorage(); // 实例化
                /*
                *  getList:获取指定domain下的文件名列表
                *  return: 执行成功时返回文件列表数组,否则返回false
                *  参数:存储域,路径前缀,返回条数,起始条数
                */
                $num = 0;
                while ($ret = $st->getList(C('SaeStorage'), null, 100, $num)) {
                    foreach ($ret as $file) {
                        if (preg_match("/\.(gif|jpeg|jpg|png|bmp)$/i", $file))
                            echo $st->getUrl('upload', $file) . "ue_separate_ue";
                        $num++;
                    }
                }
            }
        }
    }
    /*
	 * 处理base64编码的图片上传
	 * 例如:涂鸦图片上传
	*/
    private function upBase64($config,$fieldName){
        $base64Data = $_POST[$fieldName];
        $img = base64_decode($base64Data);
        $dirname = './public/upload/scrawl/';
        $file['filesize'] = strlen($img);
        $file['oriName'] = $config['oriName'];
        $file['ext'] = strtolower(strrchr($config['oriName'],'.'));
        $file['name'] = uniqid().$file['ext'];
        $file['fullName'] = $dirname.$file['name'];
        $fullName = $file['fullName'];
        //检查文件大小是否超出限制
        if($file['filesize'] >= ($config["maxSize"])){
            $data=array(
                'state' => '文件大小超出网站限制',
            );
            return json_encode($data);
        }
        //创建目录失败
        if(!file_exists($dirname) && !mkdir($dirname,0777,true)){
            $data=array(
                'state' => '目录创建失败',
            );
            return json_encode($data);
        }else if(!is_writeable($dirname)){
            $data=array(
                'state' => '目录没有写权限',
            );
            return json_encode($data);
        }
        //移动文件
        if(!(file_put_contents($fullName, $img) && file_exists($fullName))){ //移动失败
            $data=array(
                'state' => '写入文件内容错误',
            );
        }else{
            //保存到存储云
            vendor('qcloudcos.myqcloudcos');
            $resfolder=Myqcloudcos::statFolder('wxd',UPLOAD_PATH. $this->savePath);
            if ($resfolder && $resfolder['code']!=0)//不存在创建
            {
                Myqcloudcos::createFolder('wxd',UPLOAD_PATH. $this->savePath);
            }
            //上传到腾讯云
            $localpath=ROOT_PATH.$fname;
            $ypath='/'.UPLOAD_PATH.$fname;
            $res=Myqcloudcos::upload('wxd',$localpath,$ypath);
            //移动成功
            $data=array(
                'state' => 'SUCCESS',
                'url' => "https://mshopimg.yolipai.net".substr($file['fullName'],1),
                'title' => $file['name'],
                'original' => $file['oriName'],
                'type' => $file['ext'],
                'size' => $file['filesize'],
            );
        }
        return json_encode($data);
    }
    /**
     * @function imageUp
     */
    public function imageUp()
    {
        // 上传图片框中的描述表单名称,
        $pictitle = I('pictitle');
        $dir = I('dir');
        $title = htmlspecialchars($pictitle , ENT_QUOTES);
        $path = htmlspecialchars($dir, ENT_QUOTES);
        $tablename=I('tablename');
        $indexid=I('indexid');
        $imgname=I('imgname');
        $curid=I('curid');
        $saveFileName="";
        $addoldimg=I('addoldimg');
        //$input_file           ['upfile'] = $info['Filedata'];  一个是上传插件里面来的, 另外一个是文章编辑器里面来的
        // 获取表单上传文件
        $file = request()->file('Filedata');
        if(empty($file))
            $file = request()->file('file');  //图库-新
        if(empty($file))
            $file = request()->file('upfile');
        $result = $this->validate(
            ['file2' => $file],
            ['file2'=>'image','file2'=>'fileSize:2000000'],
            ['file2.image' => '上传文件必须为图片','file2.fileSize' => '上传文件过大']
           );
        if(true !== $result){
            $state = "ERROR" . $result;
        }else {
            // 移动到框架应用根目录/public/uploads/ 目录下
            if (empty($this->savePath1))
                $this->savePath = $this->savePath . date('Y') . '/' . date('m-d') . '/';
            else
                $this->savePath = $this->savePath . $this->savePath1 . '/' . date('Y') . '/' . date('m-d') . '/';
            $info = $file->rule(function ($file) {
                $saveFileName = md5(mt_rand());
                return $saveFileName; // 使用自定义的文件保存规则
            })->move('public/upload/' . $this->savePath);
            if ($info) {
                $saveFileName = $this->savePath . $info->getSaveName();
                $upfilepath = ROOT_PATH . "public/upload/" . $saveFileName;
            } else {
            }
            //
            if ($tablename == "marketing" || I('savepath') == "Marketing") //上传到有礼派资源图片上传(调用接口)
            {
                    $saveFileName = $this->savePath . $info->getSaveName();
                    $upfilepath = ROOT_PATH . "/public/upload/" . $saveFileName;
                    $img_data = [
                        'img' => $upfilepath,
                        'imgname' => basename($saveFileName),
                    ];
                    $post_data = image_form_data_splice($img_data['img'], $img_data['imgname']);
                    if (!empty($post_data)) {
                        $post_data .= FORM_HYPHENS . FORM_BOUNDARY . FORM_HYPHENS;
                    }
                    $req_headers = [
                        'Content-Type: multipart/form-data; boundary=' . FORM_BOUNDARY,
                    ];
                    $ylpres = httpRequest(YLPZY_URL . "/accounts/imgs", 'POST', $post_data, $req_headers);
                    $data1 = json_decode($ylpres, true);
                    mlog($ylpres, "imageUp");
                    if ($data1['code'] == 0) {
                        $state = "SUCCESS";
                        $return_data['url'] = $data1['data']['download_url'];
                    } else {
                        $return_data['url'] = "";
                        $state = "ERROR";
                    }
            }
            else if ($tablename == "store_wxcard")
            {
                $saveFileName = $this->savePath . $info->getSaveName();
                $upfilepath = ROOT_PATH . "/public/upload/" . $saveFileName;
                $size = getimagesize($upfilepath);
                $filetype = explode('/', $size['mime']);
                if (class_exists('\CURLFile')) {
                    $data['buffer'] = new  \CURLFile($upfilepath, $size['mime'], basename($saveFileName));
                } else {
                    $data = array(
                        'buffer' => '@' . realpath($saveFileName) . ";type=" . $filetype[1] . ";filename=" . basename($saveFileName)
                    );
                }
                $access_token = m_get_access_token(null,getAdmStoId());
                $url = "https://api.weixin.qq.com/cgi-bin/media/uploadimg?type=image&access_token=".$access_token;
                $wxres=wx_https_request($url ,'post', 'json',$data);
                mlog(json_encode($wxres),"wxcard/".getAdmStoId());
                if ($wxres['url']) {
                    $state = "SUCCESS";
                    $return_data['url'] =$wxres['url'];
                }
                else{
                    $return_data['url'] = "";
                    $state = "ERROR";
                }
            }
            else {
                //保存到存储云
                vendor ('qcloudcos.myqcloudcos');
                $resfolder=Myqcloudcos::statFolder('wxd',UPLOAD_PATH. $this->savePath);
                if ($resfolder && $resfolder['code']!=0)//不存在创建
                {
                    Myqcloudcos::createFolder('wxd',UPLOAD_PATH. $this->savePath);
                }
                //查询表取旧图,删除旧图
                if ($curid != "0" && !empty($curid)  ) {
                    $searchtable = D($tablename)->where($indexid,$curid)->find();
                    $oldimg=$searchtable[$imgname];
                    $soldimg=dirname($oldimg)."/s_".basename($oldimg);
                    if (!empty($oldimg)) {
                        mdelFile(ROOT_PATH . $oldimg);
                        mdelFile(ROOT_PATH . $soldimg);
                        if ($tablename!= "goods" && $tablename != "goods_images") {
                           //腾讯云
                           $delres=Myqcloudcos::delFile('wxd',$oldimg);
                           $delres=Myqcloudcos::delFile('wxd',$soldimg);
                        }
                    }
                    $data[$imgname]='/public/upload/'.$this->savePath.$info->getSaveName();
                    if($indexid!='store_id')
                      $data['store_id']=getAdmStoId();
                   
                    if ($tablename!="goods")//商品的时候 更新相册
                    {
						$r = M($tablename)->where($indexid,$curid)->save($data);
                        //$goodimgdata['image_url']='/public/upload/'.$this->savePath.$info->getSaveName();
                        //D('goods_images')->where(array('goods_id'=>$curid,'ismain'=>1))->save($goodimgdata);
                    }
                }
                else {
                    if (!empty($addoldimg)) {
                        $addoldimg=urldecode($addoldimg);
                        $saddoldimg=dirname($addoldimg)."/s_".basename($addoldimg);
                        mdelFile(ROOT_PATH . $addoldimg);
                        mdelFile(ROOT_PATH . $saddoldimg);
                        if ($tablename!= "goods" && $tablename != "goods_images") {
                            //腾讯云
                            $delres=Myqcloudcos::delFile('wxd',$addoldimg);
                            $delres=Myqcloudcos::delFile('wxd',$saddoldimg);
                        }
                    }
                }
                //echo print_r($info,true);
                if ($info)
                    $state = "SUCCESS";
                else
                    $state = "ERROR" . $file->getError();
                $saveFileName=$this->savePath.$info->getSaveName();
                m_cut_img(basename($saveFileName),ROOT_PATH.'/public/upload/'.dirname($saveFileName).'/');
                //商品图片才加水印
                if ($tablename=="goods" || $tablename=="goods_images") {
                    //图片水印处理
                    $water = tpCache('water', getAdmStoId());
                    $original_img = "./public/upload/" . $saveFileName;
                    $image = \think\Image::open($original_img);
                    if ($water['is_mark'] == 1) {
                        if ($water['mark_type'] == 'img' && !empty($water['mark_img']))  {
                            try {
                                $img = file_get_contents('https://mshopimg.yolipai.net'.$water['mark_img']);
                                $ext = strrchr($water['mark_img'],'.');
                                $pt='/public/upload/logo/' . date('Y') . '/' . date('m-d') . '/';
                                if (!is_dir(ROOT_PATH.$pt))
                                   mkdir(ROOT_PATH.$pt,0777,true);
                                $f10=$pt.time().mt_rand().".".$ext;
                                file_put_contents(ROOT_PATH.$f10,$img);
                                if(file_exists(ROOT_PATH.$f10)) {
                                    $image->open($original_img)->water("." . $f10, $water['mark_position'], $water['mark_degree'])->save($original_img);
                                }
                                mdelFile(ROOT_PATH.$f10);
                            } catch (Exception $e) {
                                return NOIMG;
                            }
                        } else {
                            //检查字体文件是否存在
                            if (file_exists('./SIMYOU.TTF')) {
                                $image->open($original_img)->text($water['mark_text'], './SIMYOU.TTF', 20, '#000000', $water['mark_position'])->save($original_img);
                            }
                        }
                    }
                    //商品表的主表生成小图
                    if($tablename=="goods" || $tablename=="goods_images") {
                        //生成小图
                        m_cut_img(basename($saveFileName), ROOT_PATH . '/public/upload/' . dirname($saveFileName) . '/', 400, 1);
                        $slocalpath=ROOT_PATH.'/'.UPLOAD_PATH.dirname($saveFileName).'/s_'.basename($saveFileName);
                        $sypath='/'.UPLOAD_PATH.dirname($saveFileName).'/s_'.basename($saveFileName);
                        $res=Myqcloudcos::upload('wxd',$slocalpath,$sypath);
                    }
                }
                //上传到腾讯云
                $localpath=ROOT_PATH.'/'.UPLOAD_PATH.dirname($saveFileName).'/'.basename($saveFileName);
                $ypath='/'.UPLOAD_PATH.dirname($saveFileName).'/'.basename($saveFileName);
                $res=Myqcloudcos::upload('wxd',$localpath,$ypath);
                mlog("上传失败的错误:".json_encode($res),"imageUp/".getAdmStoId());
                if ($res && $res['code']==0)//成功
                {
                    //mdelFile($localpath);
                    $return_data['url'] = '/public/upload/'.$this->savePath.$info->getSaveName();
                }else{
                    $state = "ERROR" . "云上传失败";
                }
            }
        }
        $return_data['title'] = $title;
        $return_data['original'] = ''; // 这里好像没啥用 暂时注释起来
        $return_data['state'] = $state;
        $return_data['path'] = $path;
        //print_r($return_data);
        $this->ajaxReturn($return_data,'json');
    }
    /**
     * @function imageUp1
     */
    public function imageUp1()
    {
        // 上传图片框中的描述表单名称,
        $pictitle = I('pictitle');
        $dir = I('dir');
        $title = htmlspecialchars($pictitle , ENT_QUOTES);
        $path = htmlspecialchars($dir, ENT_QUOTES);
        $localpath1=I('savepath');
        $tablename=I('tablename');
        $store_id=getAdmStoId();
        if(!empty($_SESSION['manager_id']) && $tablename=='manager')
        {
            $manager=D('manager_admin')->where('manager_id',$_SESSION['manager_id'])->find();
            if($manager)
            {
                $store_id=0;
            }
        }
//        $indexid=I('indexid');
//        $imgname=I('imgname');
//        $curid=I('curid');
        $saveFileName="";
//        $addoldimg=I('addoldimg');
        $groupid=I('groupid');
        //$input_file           ['upfile'] = $info['Filedata'];  一个是上传插件里面来的, 另外一个是文章编辑器里面来的
        // 获取表单上传文件
        $file = request()->file('Filedata');
        if(empty($file))
            $file = request()->file('file');  //图库-新
        if(empty($file))
            $file = request()->file('upfile');
        $result = $this->validate(
            ['file2' => $file],
            ['file2'=>'image','file2'=>'fileSize:2000000'],
            ['file2.image' => '上传文件必须为图片','file2.fileSize' => '上传文件过大']
        );
        if(true !== $result){
            $state = "ERROR" . $result;
        }else {
            // 移动到框架应用根目录/public/uploads/ 目录下
            if (empty($this->savePath1))
                $this->savePath = $this->savePath . date('Y') . '/' . date('m-d') . '/';
            else
                $this->savePath = $this->savePath . $this->savePath1 . '/' . date('Y') . '/' . date('m-d') . '/';
            $info = $file->rule(function ($file) {
                $saveFileName = md5(mt_rand());//$_FILES['info']['name'];
                return $saveFileName; // 使用自定义的文件保存规则
            })->move('public/upload/' . $this->savePath);
            if ($info) {
                $saveFileName = $this->savePath . $info->getSaveName();
                $upfilepath = ROOT_PATH . "public/upload/" . $saveFileName;
            } else {
            }
            if(!empty($_FILES['file']['name']))
            {
                 $file_ext=pathinfo(basename($_FILES['file']['name']))['filename'];//图片原名
            }
            //
            if ($tablename == "marketing" || I('savepath') == "Marketing") //上传到有礼派资源图片上传(调用接口)
            {
                if (I('savepath') == "Marketing")//编辑器接口
                {
                    $saveFileName = $this->savePath . $info->getSaveName();
                    $upfilepath = ROOT_PATH . "/public/upload/" . $saveFileName;
                    $img_data = [
                        'img' => $upfilepath,
                        'imgname' => basename($saveFileName),
                    ];
                    $post_data = image_form_data_splice($img_data['img'], $img_data['imgname']);
                    if (!empty($post_data)) {
                        $post_data .= FORM_HYPHENS . FORM_BOUNDARY . FORM_HYPHENS;
                    }
                    $req_headers = [
                        'Content-Type: multipart/form-data; boundary=' . FORM_BOUNDARY,
                    ];
                    $ylpres = httpRequest(YLPZY_URL . "/accounts/imgs", 'POST', $post_data, $req_headers);
                    $data1 = json_decode($ylpres, true);
                    mlog($ylpres, "imageUp");
                    if ($data1['code'] == 0) {
                        $state = "SUCCESS";
                        $return_data['url'] = $data1['data']['download_url']."|"."/public/upload/" . $saveFileName;
                    } else {
                        $return_data['url'] = "";
                        $state = "ERROR";
                    }
                } else {
                    $state = "SUCCESS";
                    $return_data['url'] = "/public/upload/" . $saveFileName;
                }
            }
            else {
                //保存到存储云
                vendor ('qcloudcos.myqcloudcos');
                $resfolder=Myqcloudcos::statFolder('wxd',UPLOAD_PATH. $this->savePath);
                if ($resfolder && $resfolder['code']!=0)//不存在创建
                {
                    Myqcloudcos::createFolder('wxd',UPLOAD_PATH. $this->savePath);
                }
                //查询表取旧图,删除旧图(07.08.12 注释)
//                if ($curid != "0" && !empty($curid)  ) {
//                    $searchtable = D($tablename)->where($indexid,$curid)->find();
//                    $oldimg=$searchtable[$imgname];
//                    $soldimg=dirname($oldimg)."/s_".basename($oldimg);
//                    if (!empty($oldimg)) {
//                        mdelFile(ROOT_PATH . $oldimg);
//                        mdelFile(ROOT_PATH . $soldimg);
//                        //腾讯云
//                        $delres=Myqcloudcos::delFile('wxd',$oldimg);
//                        $delres=Myqcloudcos::delFile('wxd',$soldimg);
//                    }
//                    $data[$imgname]='/public/upload/'.$this->savePath.$info->getSaveName();
//                    $data['store_id']=getAdmStoId();
//                    $r = D($tablename)->where($indexid,$curid)->save($data);
//                    if ($tablename=="goods")//商品的时候 更新相册
//                    {
//                        $goodimgdata['image_url']='/public/upload/'.$this->savePath.$info->getSaveName();
//                        D('goods_images')->where(array('goods_id'=>$curid,'ismain'=>1))->save($goodimgdata);
//
//                    }
//                }
//                else {
//
//                    if (!empty($addoldimg)) {
//                        $addoldimg=urldecode($addoldimg);
//                        $saddoldimg=dirname($addoldimg)."/s_".basename($addoldimg);
//                        mdelFile(ROOT_PATH . $addoldimg);
//                        mdelFile(ROOT_PATH . $saddoldimg);
//                        //腾讯云
//                        $delres=Myqcloudcos::delFile('wxd',$addoldimg);
//                        $delres=Myqcloudcos::delFile('wxd',$saddoldimg);
//
//                    }
//                }
                //echo print_r($info,true);
                if ($info)
                    $state = "SUCCESS";
                else
                    $state = "ERROR" . $file->getError();
                $saveFileName=$this->savePath.$info->getSaveName();
                m_cut_img(basename($saveFileName),ROOT_PATH.'/public/upload/'.dirname($saveFileName).'/');
                //商品图片才加水印
                if ($tablename=="goods" || $tablename=="goods_images") {
                    //图片水印处理
                    $water = tpCache('water', $store_id);
                    $original_img = "./public/upload/" . $saveFileName;
                    $image = \think\Image::open($original_img);
                    if ($water['is_mark'] == 1) {
                        if ($water['mark_type'] == 'img' && !empty($water['mark_img']))  {
                            try {
                                $img = file_get_contents('https://mshopimg.yolipai.net'.$water['mark_img']);
                                $ext = strrchr($water['mark_img'],'.');
                                $pt='/public/upload/logo/' . date('Y') . '/' . date('m-d') . '/';
                                if (!is_dir(ROOT_PATH.$pt))
                                    mkdir(ROOT_PATH.$pt,0777);
                                $f10=$pt.time().mt_rand().".".$ext;
                                file_put_contents(ROOT_PATH.$f10,$img);
                                if(file_exists(ROOT_PATH.$f10)) {
                                    $image->open($original_img)->water("." . $water['mark_img'], $water['mark_position'], $water['mark_degree'])->save($original_img);
                                }
                                mdelFile(ROOT_PATH.$f10);
                            } catch (Exception $e) {
                                return NOIMG;
                            }
                        } else {
                            //检查字体文件是否存在
                            if (file_exists('./SIMYOU.TTF')) {
                                $image->open($original_img)->text($water['mark_text'], './SIMYOU.TTF', 20, '#000000', $water['mark_position'])->save($original_img);
                            }
                        }
                    }
                    //商品表的主表生成小图
                    if($tablename=="goods") {
                        //生成小图
                        m_cut_img(basename($saveFileName), ROOT_PATH . '/public/upload/' . dirname($saveFileName) . '/', 400, 1);
                        $slocalpath=ROOT_PATH.'/'.UPLOAD_PATH.dirname($saveFileName).'/s_'.basename($saveFileName);
                        $sypath='/'.UPLOAD_PATH.dirname($saveFileName).'/s_'.basename($saveFileName);
                        $res=Myqcloudcos::upload('wxd',$slocalpath,$sypath);
                    }
                }
                //上传到腾讯云
                $localpath=ROOT_PATH.'/'.UPLOAD_PATH.dirname($saveFileName).'/'.basename($saveFileName);
                $ypath='/'.UPLOAD_PATH.dirname($saveFileName).'/'.basename($saveFileName);
                $res=Myqcloudcos::upload('wxd',$localpath,$ypath);
                mlog(json_encode($res),"imageUp");
                if ($res && $res['code']==0)//成功
                {
                    //mdelFile($localpath);
                }
                $return_data['url'] = '/public/upload/'.$this->savePath.$info->getSaveName();
            }
        }
        //存入图片库-数据库
        $filename=$filename1=$return_data['url'];
        $filename= str_replace('../','',$filename);
        $filename= trim($filename,'.');
        $filename= trim($filename,'/');
        if(file_exists(ROOT_PATH.$filename)) {
            $size = getimagesize($filename);
            $filetype = explode('/', $size['mime']);
            if ($filetype[0] != 'image') {
                return false;
                exit;
            }
            $filesize = filesize($filename);
            $sfilename = "s_" . basename($filename);
            $sdir = dirname($filename);
            $newsfilename = $sdir . "/" . $sfilename;
            if ($tablename != "goods") {
                $file_info = array('filename' => $filename1, //国片相对于网站根目录的路径
                    'content-type' => $filetype[1], //文件类型
                    'filelength' => $filesize //图文大小
                );
                $wechat = D('wx_user')->where('store_id', $store_id)->find();
                if ($store_id==0 || $wechat) {
//                    $jssdk = new \app\mobile\logic\Jssdk($wechat['appid'], $wechat['appsecret']);
//                    $access_token = $jssdk->get_access_token($wechat['appid'], $wechat['appsecret']);
//                    $url = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token={$access_token}&type=image";
//
//                    $real_path = "{$_SERVER['DOCUMENT_ROOT']}{$file_info['filename']}";
//                    //    $data = array("media" => "@{$real_path}", 'form-data' => $file_info);
//
//                    if (class_exists('\CURLFile')) {
//                        $data['media'] = new  \CURLFile($real_path, $size['mime'], basename($filename1));
//                    } else {
//                        $data = array(
//                            'media' => '@' . realpath($filename) . ";type=" . $filetype[1] . ";filename=" . basename($filename1)
//                        );
//                    }
//                    //上传至公众号
//                    $wxres ='';//wx_https_request($url, 'post', 'json', $data);
//
//
//                    if ($wxres['media_id']) {
//
//                        $savedate['media_id'] = $wxres['media_id'];
//                        $savedate['url'] = $wxres['url'];
//
//
//                        $info = array(
//                            'status' => 1,
//                            'media_id' => $wxres['media_id'],
//                            'msg' => 0,
//                        );
//
//                    }
                    $savedate['store_id'] = $store_id;
                    $savedate['imgname'] = $file_ext;//basename($filename);
                    $savedate['img'] = $filename1;
                    $savedate['localpath'] =  $localpath1;
                    $savedate['wid'] = $size[0];
                    $savedate['hei'] = $size[1];
                    $savedate['groupid']=$groupid;
                    $savedate['addtime'] = time();
                    $saveid=D('store_wximglist')->insertGetId($savedate);
                    //mdelFile($filename);//删除本地图片
                    $return_data['id']=$saveid;
                    $return_data['imgname']=$file_ext;
                }
            }
        }
        //basename($filename);
        $return_data['title'] = $title;
        $return_data['original'] = ''; // 这里好像没啥用 暂时注释起来
        $return_data['state'] = $state;
        $return_data['path'] = $path;
        //var_dump($return_data);
        mlog(json_encode($return_data),"newimg");
        $this->ajaxReturn($return_data,'json');
    }
    /*--删除文件--*/
    public function delfile(){
        $f=I('file');
        mdelFile($f);
        echo "1"; exit();
    }
    /*---获取腾讯云服务器的域名---*/
    public function gethosturl(){
       return QCLOUD_IMGURL;
    }
    public function audio(){
        $file = request()->file('tupfile');
        $data['size']=round($file->getSize()/1024,2);
        $data['name']=$file->getFilename();
        // 移动到框架应用根目录/public/uploads/ 目录下
        $this->savePath = $this->savePath. "/".$this->savePath1."/";
        // 使用自定义的文件保存规则
        $info = $file->rule(function ($file) {
            return  md5(mt_rand());
        }) ->move('public/upload/'.$this->savePath);
        //保存到存储云
        vendor('qcloudcos.myqcloudcos');
        $resfolder=Myqcloudcos::statFolder('wxd',UPLOAD_PATH. $this->savePath);
        if ($resfolder && $resfolder['code']!=0)//不存在创建
        {
            Myqcloudcos::createFolder('wxd',UPLOAD_PATH. $this->savePath);
        }
        //上传到腾讯云
        $localpath=ROOT_PATH.'/public/upload/'.$this->savePath.$info->getSaveName();
        $ypath='/'.UPLOAD_PATH.$this->savePath.$info->getSaveName();
        $res=Myqcloudcos::upload('wxd',$localpath,$ypath);
        if($res && $res['code']==0){}
        $data['url']="/public/upload/".$this->savePath.$info->getSaveName();
        $data['store_id']=$this->savePath1;
        $data['add_time']=time();
        M("audio")->save($data);
        //移动成功
        $data=array(
            'state' => 'SUCCESS',
            'url' => "https://mshopimg.yolipai.net/public/upload/".$this->savePath.$info->getSaveName(),
            'title' =>$info->getSaveName(),
            'type' => $file->getExtension(),
            'path'=>"/public/upload/".$this->savePath.$info->getSaveName(),
        );
        return json($data);
    }
}