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 相关文章推荐
通过文字传递创建的图形按钮
Oct 09 PHP
smtp邮件发送一例
Oct 09 PHP
PHP学习之数组值的操作
Apr 17 PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
Jun 28 PHP
php增删改查示例自己写的demo
Sep 04 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
Jun 25 PHP
ThinkPHP处理Ajax返回的方法
Nov 22 PHP
PHP图像处理类库MagickWand用法实例分析
May 21 PHP
php中array_column函数简单实现方法
Jul 11 PHP
PHP设计模式之注册树模式分析
Jan 26 PHP
PHP实现动态压缩js与css文件的方法
May 02 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
Mar 26 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
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
2013/06/05 PHP
php使用异或实现的加密解密实例
2013/09/04 PHP
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
Laravel使用模型实现like模糊查询的例子
2019/10/24 PHP
jquery 关于event.target使用的几点说明介绍
2013/04/26 Javascript
ScrollDown的基本操作示例
2013/06/09 Javascript
判断日期是否能跨月查询的js代码
2014/07/25 Javascript
javascript常用代码段搜集
2014/12/04 Javascript
JavaScript操作DOM元素的childNodes和children区别
2015/04/01 Javascript
AngularJS入门教程之迭代器过滤详解
2016/08/18 Javascript
再谈javascript常见错误及解决方法
2016/09/16 Javascript
浅谈jquery页面初始化的4种方式
2016/11/27 Javascript
jQuery插件JWPlayer视频播放器用法实例分析
2017/01/11 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
NodeJS链接MySql数据库的操作方法
2017/06/27 NodeJs
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
微信小程序实现鼠标拖动效果示例
2017/12/01 Javascript
微信小程序实现折叠展开效果
2018/07/19 Javascript
[01:29]2014DOTA2展望TI 剑指西雅图DK战队专访
2014/06/30 DOTA
Python中使用logging模块打印log日志详解
2015/04/05 Python
python实现三次样条插值
2018/12/17 Python
python实现祝福弹窗效果
2019/04/07 Python
用python3 urllib破解有道翻译反爬虫机制详解
2019/08/14 Python
利用keras加载训练好的.H5文件,并实现预测图片
2020/01/24 Python
在django中使用post方法时,需要增加csrftoken的例子
2020/03/13 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
2020/04/11 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
python 如何在测试中使用 Mock
2021/03/01 Python
新加坡航空官方网站:Singapore Airlines
2016/10/13 全球购物
缅甸网上购物:Shop.com.mm
2017/12/05 全球购物
美国首屈一指的礼品篮供应商:GiftTree
2018/01/06 全球购物
汇报材料怎么写
2014/12/30 职场文书
管理人员岗位职责
2015/02/14 职场文书
学校百日安全活动总结
2015/05/07 职场文书
党组织结对共建协议书
2016/03/23 职场文书