• wordpress CMS主题:ssmay主题wordpress CMS主题:ssmay主题
  • 首页 > PHP开发 > ueditor百度编辑器如何使用thinkphp内置上传类来上传文件?

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

    作者: 分类:PHP开发 点击: 1,114 次
    wordpress CMS主题:ssmay主题

      前面我们介绍过 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配置文件中的说明来做相应的调整,这里就不多写了。

       

       

       

       



      QQ二维码

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

    上一篇:
    下一篇:
    wordpress CMS主题:ssmay主题

    或许你会感兴趣的文章:

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    This site uses Akismet to reduce spam. Learn how your comment data is processed.