wordpress CMS主题 微信
Home > PHP开发 > ueditor百度编辑器如何使用thinkphp内置上传类来上传文件?

ueditor百度编辑器如何使用thinkphp内置上传类来上传文件?

高时银博客 PHP开发 点击: 55 次 0 1
  • 标签: |
  • 前面我们介绍过 thinkphp3.2.3如何集成ueditor百度编辑器 ,整合后,上传文件会上传到ueditor编辑器配置中指定的目录中,默认是\ueditor\php\upload\image\目录下。但是,我们既然使用thinkphp来开发项目,为什么不用thinkphp内置的上传类来让编辑器上传文件呢?

    ueditor百度编辑器如何使用thinkphp内置上传类来上传图片?

    第一步:自定义上传类

    创建一个专门用来针对ueditor的上传图片的控制器类——UpfilesController.class.php 代码如下:

    namespace Admin\Controller;
    use Think\Controller;
    class UpfilesController extends Controller {
    function upfile(){
    $CONFIG = json_decode(preg_replace("/\/\*[\s\S]+?\*\//", "", file_get_contents("./Public/ueditor/php/config.json")), true);
    $result = '';
    $action = $_GET['action'];
    if($action == 'uploadimage') { //上传图片
    //上传到本地
    $files = new \Think\Upload();
    $files->maxSize=1000000;
    $files->exts=array('jpg','jpeg','gif','png');
    $files->rootPath='./';
    $files->savePath='./Upload/';
    $info = $files->upload();
    if(!$info){
    $arr = array('state'=>$files->getError());
    $result = json_encode($arr);
    }else{
    $arr = array(
    'state'=>'SUCCESS',
    //上传到本地的地址
    'url'=>"http://".$_SERVER['SERVER_NAME']."/dream".trim($info['upfile']['savepath'].$info['upfile']['savename'],"."),
    'title'=>$info['upfile']['savename'],
    'original'=>$info['upfile']['name'],
    'type'=>$info['upfile']['ext'],
    'size'=>$info['upfile']['size']
    );

    $result = json_encode($arr);
    }
    //图片上传结束
    } elseif($action == 'config' ) { //加载配置
    $result = json_encode($CONFIG);
    }
    echo $result; exit;
    }
    }

    第二步:前端页面修改ueditor请求接口路径。

    通过测试可以在浏览器的firebug中发现 controller.php是ueditor的服务器统一请求接口路径。在该文件代码中,我们可以发现,它引用了上传类文件action_upload.php和Uploader.class.php,如果想使用thinkphp自带的上传类,我们只需要自定义请求地址即可,把controller.php替换成我们自己的控制器地址。

    window.UEDITOR_HOME_URL = "{$smarty.const.__ROOT__}/Public/ueditor/";
    UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl;//自定义请求地址
    UE.Editor.prototype.getActionUrl = function(action) {
    if(action =="uploadimage"){
    return "{$smarty.const.__MODULE__}/Upfiles/upfile/action/uploadimage"; //这里因为我用的是smarty模板引擎,所以这样写
    }else if(action =="config"){
    return this._bkGetActionUrl.call(this,action);
    }
    } //自定义请求地址结束
    UE.getEditor('test_ue');

    通过这2步,我们就实现了ueditor编辑器使用thinkphp内置上传类来上传图片。如果你还想上传其它东西,如:视频、文件等,可以根据ueditor配置文件中的说明来做相应的调整,这里就不多写了。

     

     

     

     


    文章作者:高时银博客
    本文地址:http://wanlimm.com/77201805105555.html
    版权所有 © 转载时必须以链接形式注明作者和原始出处!

    目前还没有评论。赶快来坐沙发吧。

    发表评论