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中文件上传的安全问题
Oct 09 PHP
关于PHP中的Class的几点个人看法
Oct 09 PHP
Php做的端口嗅探器--可以指定网站和端口
Oct 09 PHP
常用的php ADODB使用方法集锦
Mar 25 PHP
PHP 读取和编写 XML
Nov 19 PHP
php使用str_replace实现输入框回车替换br的方法
Nov 24 PHP
PHP多线程之内部多线程实例分析
Mar 09 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
Sep 20 PHP
Zend Framework教程之Autoloading用法详解
Mar 08 PHP
使用php实现网站验证码功能【推荐】
Feb 09 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
Nov 19 PHP
PHP实现笛卡尔积算法的实例讲解
Dec 22 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
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
PHP4之真OO
2006/10/09 PHP
php实现的短网址算法分享
2014/06/20 PHP
php实现微信公众号无限群发
2015/10/11 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
php技巧小结【推荐】
2017/01/19 PHP
Javascript 不能释放内存.
2006/09/07 Javascript
javascript Array数组对象的扩展函数代码
2010/05/22 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
JS验证逗号隔开可以是中文字母数字
2016/04/22 Javascript
jQuery实现手机版页面翻页效果的简单实例
2016/10/05 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
js实现无缝滚动图
2017/02/22 Javascript
nodejs使用express创建一个简单web应用
2017/03/31 NodeJs
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
2017/11/02 Javascript
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
python获取本地计算机名字的方法
2015/04/29 Python
在Django的视图中使用数据库查询的方法
2015/07/16 Python
学习Python selenium自动化网页抓取器
2018/01/20 Python
python的time模块和datetime模块实例解析
2019/11/29 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
2020/01/03 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
2020/04/21 Python
Python中内建模块collections如何使用
2020/05/27 Python
CSS3制作圆形滚动进度条动画的示例
2020/11/05 HTML / CSS
canvas实现图片马赛克的示例代码
2018/03/26 HTML / CSS
Willer台湾:日本高速巴士/夜行巴士预约
2017/07/09 全球购物
Watchshop德国:欧洲在线手表No.1
2019/06/20 全球购物
Helly Hansen工作服美国官方网上商店:为最恶劣的环境
2019/09/04 全球购物
采用怎样的方法保证数据的完整性
2013/12/02 面试题
为什么要做架构设计
2015/07/08 面试题
保密工作责任书
2014/04/16 职场文书
2014年科协工作总结
2014/12/09 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
2015年店长个人工作总结
2015/10/23 职场文书
十大冰系宝可梦排名,颜值最高的阿罗拉九尾,第三使用率第一
2022/03/18 日漫