IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> thinkphp5.1对接ueditor(自定义上传接口) -> 正文阅读

[PHP知识库]thinkphp5.1对接ueditor(自定义上传接口)

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

解决方法:

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

class Ueditor extends Base{
	
	// 优先加载
	protected function initialize() {
		parent::initialize();
		$this->attachmentModel = new AttachmentModel;
		$this->configModel = new ConfigModel;
		$this->config =$this->configModel->getConfig('upload');
		$this->config['max_size'] = $this->config['max_size'] * 1024;
		$this->config['allow_ext'] =  str_replace('|',',',$this->config['allow_ext']);
	}
	
	// 编辑器内上传图片
	private $stateMap = array(
		'SUCCESS', //上传成功标记,在UEditor中内不可改变,否则flash判断会出错
		'文件大小超出 upload_max_filesize 限制',
		'文件大小超出 MAX_FILE_SIZE 限制',
		'文件未被完整上传',
		'没有文件被上传',
		'上传文件为空',
		'ERROR_TMP_FILE' => '临时文件错误',
		'ERROR_TMP_FILE_NOT_FOUND' => '找不到临时文件',
		'ERROR_SIZE_EXCEED' => '文件大小超出网站限制',
		'ERROR_TYPE_NOT_ALLOWED' => '文件类型不允许',
		'ERROR_CREATE_DIR' => '目录创建失败',
		'ERROR_DIR_NOT_WRITEABLE' => '目录没有写权限',
		'ERROR_FILE_MOVE' => '文件保存时出错',
		'ERROR_FILE_NOT_FOUND' => '找不到上传文件',
		'ERROR_WRITE_CONTENT' => '写入文件内容错误',
		'ERROR_UNKNOWN' => '未知错误',
		'ERROR_DEAD_LINK' => '链接不可用',
		'ERROR_HTTP_LINK' => '链接不是http链接',
		'ERROR_HTTP_CONTENTTYPE' => '链接contentType不正确',
		'INVALID_URL' => '非法 URL',
		'INVALID_IP' => '非法 IP'
	);
	
	// Ueditor 方法 Controller.php,初始化
	public function doupload() {
		date_default_timezone_set('Asia/chongqing');
		error_reporting(E_ERROR);
		header('Content-Type: text/html; charset=utf-8');
		$CONFIG = json_decode(preg_replace('/\/\*[\s\S]+?\*\//', '', file_get_contents(PUBLIC_PATH.'/static/common/ueditor/ueditor.config.js')), true);
		$action = input('param.action');

		$uploadfile = ROOT_PATH . 'upload' . DS . 'image';

		switch ($action) {
			case 'config':
				$result =  json_encode($CONFIG);
				break;
			
			/* 上传图片 */
			case 'uploadimage':
				$result = $this->upload_image($uploadfile);
				break;
			
			/* 上传涂鸦 */
			case 'uploadscrawl':
			
			/* 上传视频 */
			case 'uploadvideo':
			
			/* 上传文件 */
			
			case 'uploadfile':
				//$result = include("action_upload.php");
				break;
			
			/* 列出图片 */
			case 'listimage':
				//$result = include("action_list.php");
				break;
			
			/* 列出文件 */
			case 'listfile':
				//$result = include("action_list.php");
				break;
			
			/* 抓取远程文件 */
			case 'catchimage':
				//$result = $this -> get_remote_image($mySavePath);
				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 upload_image($uploadfile) {
       //您的图片上传方法
    }
}

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

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

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

?

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:04:45  更:2022-04-09 18:05:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 17:33:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码