PHP CKEditor 上传图片实现代码


Posted in PHP onNovember 06, 2009

我花了一个下午的时间,自己用PHP脚本写了一个处理上传文件的脚本代码,没有做更多的安全处理,希望对大家有用。
首先,在你的config.js文件里添加如下代码:

CKEDITOR.editorConfig = function( config ) 
{ 
config.filebrowserImageUploadUrl = './upload.php?type=img'; 
config.filebrowserFlashUploadUrl = './upload.php?type=flash'; 
};

以上的配置是上传要处理到的文件的地址,你可以根据自己情况进行修改。upload.php文件如下:
<?php 
/* 
CKEditor_upload.php 
monkee 
2009-11-15 16:47 
*/ 
$config=array(); 
$config['type']=array("flash","img"); //上传允许type值 
$config['img']=array("jpg","bmp","gif"); //img允许后缀 
$config['flash']=array("flv","swf"); //flash允许后缀 
$config['flash_size']=200; //上传flash大小上限 单位:KB 
$config['img_size']=500; //上传img大小上限 单位:KB 
$config['message']="上传成功"; //上传成功后显示的消息,若为空则不显示 
$config['name']=mktime(); //上传后的文件命名规则 这里以unix时间戳来命名 
$config['flash_dir']="/ckeditor/upload/flash"; //上传flash文件地址 采用绝对地址 方便upload.php文件放在站内的任何位置 后面不加"/" 
$config['img_dir']="/ckeditor/upload/img"; //上传img文件地址 采用绝对地址 采用绝对地址 方便upload.php文件放在站内的任何位置 后面不加"/" 
$config['site_url']=""; //网站的网址 这与图片上传后的地址有关 最后不加"/" 可留空 
//文件上传 
uploadfile(); 
function uploadfile() 
{ 
global $config; 
//判断是否是非法调用 
if(empty($_GET['CKEditorFuncNum'])) 
mkhtml(1,"","错误的功能调用请求"); 
$fn=$_GET['CKEditorFuncNum']; 
if(!in_array($_GET['type'],$config['type'])) 
mkhtml(1,"","错误的文件调用请求"); 
$type=$_GET['type']; 
if(is_uploaded_file($_FILES['upload']['tmp_name'])) 
{ 
//判断上传文件是否允许 
$filearr=pathinfo($_FILES['upload']['name']); 
$filetype=$filearr["extension"]; 
if(!in_array($filetype,$config[$type])) 
mkhtml($fn,"","错误的文件类型!"); 
//判断文件大小是否符合要求 
if($_FILES['upload']['size']>$config[$type."_size"]*1024) 
mkhtml($fn,"","上传的文件不能超过".$config[$type."_size"]."KB!"); 
//$filearr=explode(".",$_FILES['upload']['name']); 
//$filetype=$filearr[count($filearr)-1]; 
$file_abso=$config[$type."_dir"]."/".$config['name'].".".$filetype; 
$file_host=$_SERVER['DOCUMENT_ROOT'].$file_abso; 
if(move_uploaded_file($_FILES['upload']['tmp_name'],$file_host)) 
{ 
mkhtml($fn,$config['site_url'].$file_abso,$config['message']); 
} 
else 
{ 
mkhtml($fn,"","文件上传失败,请检查上传目录设置和目录读写权限"); 
} 
} 
} 
//输出js调用 
function mkhtml($fn,$fileurl,$message) 
{ 
$str='<script type="text/javascript">window.parent.CKEDITOR.tools.callFunction('.$fn.', \''.$fileurl.'\', \''.$message.'\');</script>'; 
exit($str); 
} 
?>

代码打包下载
PHP 相关文章推荐
优化使用mysql存储session的php代码
Jan 10 PHP
PHP 日志缩略名的创建函数代码
May 26 PHP
PHP中读写文件实现代码
Oct 20 PHP
对淘宝URL中ID提取的PHP代码
Sep 01 PHP
ThinkPHP模板比较标签用法详解
Jun 30 PHP
php操作xml入门之xml基本介绍及xml标签元素
Jan 23 PHP
php检测url是否存在的方法
Apr 14 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
May 20 PHP
nginx下安装php7+php5
Jul 31 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
Oct 17 PHP
PHP设计模式之工厂模式详解
Oct 24 PHP
PHP判断是否是json字符串
Apr 01 PHP
PHP 压缩文件夹的类代码
Nov 05 #PHP
PHP 向右侧拉菜单实现代码,测试使用中
Nov 03 #PHP
网页游戏开发入门教程三(简单程序应用)
Nov 02 #PHP
网页游戏开发入门教程二(游戏模式+系统)
Nov 02 #PHP
初学CAKEPHP 基础教程
Nov 02 #PHP
PHP+MySQL 制作简单的留言本
Nov 02 #PHP
PHP+XML 制作简单的留言本 图文教程
Nov 02 #PHP
You might like
用javascript动态调整iframe高度的方法
2007/03/06 Javascript
javascript实现的listview效果
2007/04/28 Javascript
extjs 学习笔记(一) 一些基础知识
2009/10/13 Javascript
JQuery的Ajax跨域请求原理概述及实例
2013/04/26 Javascript
javascript 循环调用示例介绍
2013/11/20 Javascript
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
jQuery多级手风琴菜单实例讲解
2015/10/22 Javascript
一分钟理解js闭包
2016/05/04 Javascript
深入理解js promise chain
2016/05/05 Javascript
浅谈JavaScript中数组的增删改查
2016/06/20 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
详解react如何在组件中获取路由参数
2017/06/15 Javascript
jQuery实现的自定义轮播图功能详解
2018/12/28 jQuery
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
javascript实现雪花飘落效果
2020/08/19 Javascript
Python break语句详解
2014/03/11 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
2016/05/28 Python
python中函数默认值使用注意点详解
2016/06/01 Python
Python3 socket同步通信简单示例
2017/06/07 Python
python正则表达式及使用正则表达式的例子
2018/01/22 Python
python3+PyQt5实现柱状图
2018/04/24 Python
Python为何不能用可变对象作为默认参数的值
2019/07/01 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
印度最大的网上花店:Ferns N Petals(鲜花、礼品和蛋糕)
2017/10/16 全球购物
一组SQL面试题
2016/02/15 面试题
软件工程师岗位职责
2013/11/16 职场文书
大学毕业生自荐书怎么写?
2014/01/06 职场文书
顶岗实习接收函
2014/01/09 职场文书
材料化学专业求职信
2014/07/15 职场文书
副主任竞聘演讲稿
2014/08/18 职场文书
学生考试舞弊检讨书
2015/01/01 职场文书
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers