关于thinkphp5的上传图片和ckeditor

        $callback = input('CKEditorFuncNum');
        $upload = $_FILES['upload'];
        switch($upload['error']){
            case 0://说明上传没有什么错误
                break;
            case 1:
            case 2:
                $error = '上传文件大小超过了最大值!'.ini_get('upload_max_filesize');
                break;
            case 3:
                $error = '文件只有部分被上传!';
                break;
            case 4:
                $error = '没有文件被上传!';
                break;
            case 6:
                $error = '找不到临时文件夹!';
                break;
            case 7:
                $error = '文件写入失败!';
                break;
            default:
                $error = '未知上传错误!';
        }
        if(isset($error)){
            echo "<script>window.parent.CKEDITOR.tools.callFunction($callback, '', '".$error."');</script>";exit();
        }
        if($upload['size']>204800){
            echo "<script>window.parent.CKEDITOR.tools.callFunction($callback, '', '图片大小不得大于200kb');</script>";exit();
        }


        $file = request()->file('upload');//首先这一步不可靠,因为当文件有错误时这边根本不会有信息,比如上传过大,$_FILES有元素,error=1,这边获取的元素就为空,所以这部之前应该先处理以下,确保$file不为空
        //这一步就需要先检查下是不是图片类型了
        //$isimage = $file->checkImg();//用的是file的方法
        $ext = $file->checkExt('jpg,png,gif,jpeg');//'gif', 'jpg', 'jpeg', 'bmp', 'png', 'swf'
        $yange = $file->checkImg();
        if($ext && $yange){
            list($width, $height, $type, $attr) = getimagesize($file->getPathname());
            if($width>1000){
                //echo "<script type='text/javascript'>window.top.alert('图片宽度不得大于1000')</script>";exit();
                echo "<script>window.parent.CKEDITOR.tools.callFunction($callback, '', '图片宽度不得大于1000px');</script>";exit();
            }
            if($height>500){
                //echo "<font color=\"red\"size=\"2\">图片高度不得大于500</font>";exit();
                echo "<script>window.parent.CKEDITOR.tools.callFunction($callback, '', '图片高度不得大于500px');</script>";exit();
            }


        }else{
            echo "<script>window.parent.CKEDITOR.tools.callFunction($callback, '', '请上传图片类型');</script>";exit();
        }
        $info = $file->validate(['ext'=>'jpg,png,gif,jpeg'])->move(ROOT_PATH . 'public' . DS . 'ckeditor');
        $data = array();
        if($info){
            $previewname = DS.'public' . DS . 'ckeditor' . DS . $info->getSaveName();
            $previewname = str_replace('\\','\/',$previewname);
            echo "<script type='text/javascript'>window.parent.CKEDITOR.tools.callFunction($callback,'".$previewname."','');</script>";
        }else{
            echo "<script>window.parent.CKEDITOR.tools.callFunction($callback, '', '".$file->getError()."');</script>";exit();
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值