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 相关文章推荐
用在PHP里的JS打印函数
Oct 09 PHP
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
Oct 09 PHP
PHP 采集程序中常用的函数
Dec 09 PHP
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
Oct 12 PHP
PHP curl模拟浏览器采集阿里巴巴的实现代码
Apr 20 PHP
基于simple_html_dom的使用小结
Jul 01 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
Feb 18 PHP
destoon设置自定义搜索的方法
Jun 21 PHP
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
May 12 PHP
PHP 设计模式系列之 specification规格模式
Jan 10 PHP
Zend Framework教程之资源(Resources)用法实例详解
Mar 14 PHP
Netbeans 8.2与PHP相关的新特性介绍
Oct 08 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
PHPnow安装服务[apache_pn]失败的问题的解决方法
2010/09/10 PHP
php采集自中央气象台范围覆盖全国的天气预报代码实例
2015/01/04 PHP
php+mysql实现简单的增删改查功能
2015/07/13 PHP
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
php连接mysql数据库
2017/03/21 PHP
jquery 应用代码 方便的排序功能
2010/02/06 Javascript
用apply让javascript函数仅执行一次的代码
2010/06/27 Javascript
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
jQuery中removeProp()方法用法实例
2015/01/05 Javascript
jquery简单实现图片切换效果的方法
2015/05/12 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
JavaScript对象创建模式实例汇总
2016/10/03 Javascript
详解webpack进阶之插件篇
2017/07/06 Javascript
ES6 javascript的异步操作实例详解
2017/10/30 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
通过JS判断网页是否为手机打开
2020/10/28 Javascript
Python实现冒泡,插入,选择排序简单实例
2014/08/18 Python
Python with用法实例
2015/04/14 Python
pygame播放音乐的方法
2015/05/19 Python
利用pandas进行大文件计数处理的方法
2018/07/25 Python
python通过zabbix api获取主机
2018/09/17 Python
python里运用私有属性和方法总结
2019/07/08 Python
Pycharm编辑器功能之代码折叠效果的实现代码
2020/10/15 Python
找到不普通的东西:Bonanza
2016/10/20 全球购物
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
Kaufmann Mercantile官网:家居装饰、配件、户外及更多
2018/09/28 全球购物
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
工商企业管理实习自我鉴定
2013/12/04 职场文书
新驾驶员个人自我评价
2014/01/03 职场文书
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
导游词格式
2015/02/13 职场文书
八一建军节慰问信
2015/02/14 职场文书
有关西游记的读书笔记
2015/06/25 职场文书
完美处理python与anaconda环境变量的冲突问题
2021/04/07 Python
奥特曼十大神器:奥特手镯在榜,第一是贝利亚的神器
2022/03/18 日漫
对象析构函数__del__在Python中何时使用
2022/03/22 Python