-
CKEditor4结合php实现上传图片功能
ckedit4是没有图片上传功能的,单我们可以通过配置 config.js 文件来设置图片上传的接口,然后结合后端程序实现图片上传,本文讲解CKEditor4结合php实现上传图片功能的方法
配置 config.js 文件
upload.php 后端处理文件
总结
ckedit4是没有图片上传功能的,单我们可以通过配置 config.js 文件来设置图片上传的接口,然后结合后端程序实现图片上传。本文讲解CKEditor4结合php实现上传图片功能的方法。
配置 config.js 文件
找到ckeditor目录下的config.js文件,添加两个配置
config.extraPlugins = 'uploadimage'
config.filebrowserImageUploadUrl = '/api/UploadImg/upload.php'
//filebrowserImageUploadUrl 替换成你需要上传的接口
我们点击图片按钮时候,便发现弹窗中多了上传的tag界面 ,里面有选择文件按钮,可以上传图片到服务器,也就是会把file文件发送到上面设置的filebrowserImageUploadUrl接口。
upload.php 后端处理文件
TIPS:
1、ckedit4需要返回的json文件处理后续操作,使用json_encode;
2、$_REQUEST["ckCsrfToken"]是ckedit4需要的;
3、做了文件格式验证和文件大小处理;
4、文件名uniqid唯一处理。
<?php
$callback = $_REQUEST["ckCsrfToken"];
$list=array("uploaded"=>'0','callback'=>$callback);
$upaddress = "/uploads/allimg/".strftime("%Y%m",time())."/";
echo upload();
function upload(){
global $list,$upaddress;
$callback = $_REQUEST["ckCsrfToken"];
$extensions = array("jpg","bmp","gif","png");
$allowed_types = ['image/jpeg', 'image/png', 'image/gif'];
$uploadFilename = $_FILES['upload']['name'];
$uploadFilesize = $_FILES['upload']['size'];
$uploadFiletype = $_FILES['upload']['type'];
$extension = pathInfo($uploadFilename,PATHINFO_EXTENSION);
if(is_uploaded_file($_FILES['upload']['tmp_name']) && $uploadFilesize < 1024*300 && in_array($uploadFiletype, $allowed_types) && in_array($extension,$extensions)){
$uploadPath = $_SERVER['DOCUMENT_ROOT'].$upaddress;
if(!file_exists($uploadPath))
{
mkdir($uploadPath,0777,true);
}
$uuid = str_replace('.','',uniqid("",TRUE)).".".$extension;
$desname = $uploadPath.$uuid;
$tag = move_uploaded_file($_FILES['upload']['tmp_name'],$desname);
$list['uploaded']=1;
$list['fileName']=$uuid;
$list['url']=$upaddress.$uuid;
return json_encode($list);
}else{
$list['error']="文件类型不对或文件太大!";
return json_encode($list);
}
}
?>
总结
到此这篇关于CKEditor4结合php实现上传图片功能的文章就介绍到这了,更多相关CKEditor4实现上传图片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持
来源:https://www.jb51.net/program/318389p1j.htm
栏目列表
最新更新
vbs能调用的系统对象小结
vbscript网页模拟登录效果代码
VBScript 根据IE窗口的标题输出ESC
杀死指定进程名称的小VBS
通过vbs修改以点结尾的文件的属性为隐藏
查询电脑开关机时间的vbs代码
VBA中的Timer函数用法
ComboBox 控件的用法教程
在windows 64位操作系统上运行32位的vbscri
无法执行vbs脚本中遇到的问题及解决方案
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比