QQ咨询 官方微信

添加微信好友

官方小程序

百度小程序

微信小程序

头条小程序

关于我们

thinkphp

thinkphp5.1对接ueditor(自定义上传接口)

 admin  2022-06-03 23:01:12

由于ueditor官方提供了 php的接口,所以很多人都是直接使用他自带的那个了,但是如果要用到thinkphp我们自己开发的上传接口,则官方没有给出更多的解决方案,

解决方法:

(1)自己封装一个上传类:ueditor.php

  1. class Ueditor extends Base{ 
  2.      
  3.     // 优先加载 
  4.     protected function initialize() { 
  5.         parent::initialize(); 
  6.         $this->attachmentModel = new AttachmentModel; 
  7.         $this->configModel = new ConfigModel; 
  8.         $this->config =$this->configModel->getConfig('upload'); 
  9.         $this->config['max_size'] = $this->config['max_size'] * 1024; 
  10.         $this->config['allow_ext'] =  str_replace('|',',',$this->config['allow_ext']); 
  11.     } 
  12.      
  13.     // 编辑器内上传图片 
  14.     private $stateMap = array( 
  15.         'SUCCESS'//上传成功标记,在UEditor中内不可改变,否则flash判断会出错 
  16.         '文件大小超出 upload_max_filesize 限制'
  17.         '文件大小超出 MAX_FILE_SIZE 限制'
  18.         '文件未被完整上传'
  19.         '没有文件被上传'
  20.         '上传文件为空'
  21.         'ERROR_TMP_FILE' => '临时文件错误'
  22.         'ERROR_TMP_FILE_NOT_FOUND' => '找不到临时文件'
  23.         'ERROR_SIZE_EXCEED' => '文件大小超出网站限制'
  24.         'ERROR_TYPE_NOT_ALLOWED' => '文件类型不允许'
  25.         'ERROR_CREATE_DIR' => '目录创建失败'
  26.         'ERROR_DIR_NOT_WRITEABLE' => '目录没有写权限'
  27.         'ERROR_FILE_MOVE' => '文件保存时出错'
  28.         'ERROR_FILE_NOT_FOUND' => '找不到上传文件'
  29.         'ERROR_WRITE_CONTENT' => '写入文件内容错误'
  30.         'ERROR_UNKNOWN' => '未知错误'
  31.         'ERROR_DEAD_LINK' => '链接不可用'
  32.         'ERROR_HTTP_LINK' => '链接不是http链接'
  33.         'ERROR_HTTP_CONTENTTYPE' => '链接contentType不正确'
  34.         'INVALID_URL' => '非法 URL'
  35.         'INVALID_IP' => '非法 IP' 
  36.     ); 
  37.      
  38.     // Ueditor 方法 Controller.php,初始化 
  39.     public function doupload() { 
  40.         date_default_timezone_set('Asia/chongqing'); 
  41.         error_reporting(E_ERROR); 
  42.         header('Content-Type: text/html; charset=utf-8'); 
  43.         $CONFIG = json_decode(preg_replace('/\/\*[\s\S]+?\*\//''', file_get_contents(PUBLIC_PATH.'/static/common/ueditor/ueditor.config.js')), true); 
  44.         $action = input('param.action'); 
  45.  
  46.         $uploadfile = ROOT_PATH . 'upload' . DS . 'image'
  47.  
  48.         switch ($action) { 
  49.             case 'config'
  50.                 $result =  json_encode($CONFIG); 
  51.                 break
  52.              
  53.             /* 上传图片 */ 
  54.             case 'uploadimage'
  55.                 $result = $this->upload_image($uploadfile); 
  56.                 break
  57.              
  58.             /* 上传涂鸦 */ 
  59.             case 'uploadscrawl'
  60.              
  61.             /* 上传视频 */ 
  62.             case 'uploadvideo'
  63.              
  64.             /* 上传文件 */ 
  65.              
  66.             case 'uploadfile'
  67.                 //$result = include("action_upload.php"); 
  68.                 break
  69.              
  70.             /* 列出图片 */ 
  71.             case 'listimage'
  72.                 //$result = include("action_list.php"); 
  73.                 break
  74.              
  75.             /* 列出文件 */ 
  76.             case 'listfile'
  77.                 //$result = include("action_list.php"); 
  78.                 break
  79.              
  80.             /* 抓取远程文件 */ 
  81.             case 'catchimage'
  82.                 //$result = $this -> get_remote_image($mySavePath); 
  83.                 break
  84.              
  85.             default
  86.                 $result = json_encode(array( 
  87.                     'state'=> '请求地址出错' 
  88.                 )); 
  89.                 break
  90.         } 
  91.          
  92.         /* 输出结果 */ 
  93.         if(isset($_GET['callback'])){ 
  94.             if (preg_match('/^[\w_]+$/', $_GET['callback'])) { 
  95.                 echo htmlspecialchars($_GET['callback']) . '(' . $result . ')'
  96.             }else
  97.                 echo json_encode(array( 
  98.                     'state'=> 'callback参数不合法' 
  99.                 )); 
  100.             } 
  101.         } else { 
  102.             echo $result; 
  103.         } 
  104.     } 
  105.      
  106.     // 上传图片 
  107.     public function upload_image($uploadfile) { 
  108.        //您的图片上传方法 
  109.     } 



2、在需要用到富文本编辑器的地方添加js代码:

  1. <script src="/public/static/common/ueditor/ueditor.config.js"></script> 
  2. <script src="/public/static/common/ueditor/ueditor.all.min.js"></script> 
  3. <script> 
  4.             UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl; 
  5.             UE.Editor.prototype.getActionUrl = function(action) { 
  6.                 if (action == "uploadimage") {    //上传图片 
  7.                     return "{url('admin/ueditor/doupload',['action'=>'uploadimage'])}"
  8.                 } else  if(action == "config") {    //加载配置 
  9.                     return this._bkGetActionUrl.call(this, action); 
  10.                 } 
  11.             } 
  12.             var ue = UE.getEditor("editor_content",{ 
  13.                 autoHeightEnabled: false,  //禁止自动长高 
  14.                 autoFloatEnabled:false,    //禁止工具条漂浮 
  15.             }); 
  16.             </script 


刷新即可,不需要去专门配置ueditor.config.js里边的url了

效果:

¥ 打赏
×
如果您觉得文章帮助了您就打赏一下吧
非常感谢你的打赏,我们将继续分享更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

本文《thinkphp5.1对接ueditor(自定义上传接口)》发布于石头博客文章,作者:admin,如若转载,请注明出处:https://www.pweb123.com/kuangjia/thinkphp/843.html,否则禁止转载,谢谢配合!

文章点评

我来说两句 已有0条评论
点击图片更换

添加微信好友

添加微信好友

微信小程序

百度小程序