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 相关文章推荐
?生?D片??C字串
Dec 06 PHP
PHP include_path设置技巧分享
Jul 03 PHP
浅析php学习的路线图
Jul 10 PHP
PHP中判断变量为空的几种方法小结
Nov 12 PHP
php判断GIF图片是否为动画的方法
Sep 04 PHP
PHP下载生成的csv文件及问题总结
Aug 06 PHP
简单介绍PHP的责任链编程模式
Aug 11 PHP
学习PHP的数组总结【经验】
May 05 PHP
CI框架集成Smarty的方法分析
May 17 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
Jun 07 PHP
php实现表单提交上传文件功能
May 28 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
Jun 05 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
《星际争霸2》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
PHP 验证身份证是否合法的函数
2017/02/09 PHP
PHP递归算法的简单实例
2019/02/28 PHP
PHP7内核之Reference详解
2019/03/14 PHP
关于javascript document.createDocumentFragment()
2009/04/04 Javascript
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
js模拟select下拉菜单控件的代码
2013/05/08 Javascript
使用jquery.upload.js实现异步上传示例代码
2014/07/29 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
JS定义网页表单提交(submit)的方法
2015/03/20 Javascript
nodejs的HTML分析利器node-jquery用法浅析
2016/11/08 NodeJs
JS实现的简单折叠展开动画效果示例
2018/04/28 Javascript
Nodejs异步回调之异常处理实例分析
2018/06/22 NodeJs
vue-router重定向和路由别名的使用讲解
2019/01/19 Javascript
vue实现日历备忘录功能
2020/09/24 Javascript
javascript关于“时间”的一次探索
2019/07/24 Javascript
微信小程序 scroll-view 实现锚点跳转功能
2019/12/12 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
[01:02]2014 DOTA2国际邀请赛中国区预选赛 现场抢先看
2014/05/22 DOTA
使用Python的urllib2模块处理url和图片的技巧两则
2016/02/18 Python
Python Requests模拟登录实现图书馆座位自动预约
2018/04/27 Python
Python 输入一个数字判断成绩分数等级的方法
2018/11/15 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
将数据集制作成VOC数据集格式的实例
2020/02/17 Python
linux 下selenium chrome使用详解
2020/04/02 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
2020/05/22 Python
python 爬取B站原视频的实例代码
2020/09/09 Python
用python批量移动文件
2021/01/14 Python
css3中flex布局宽度不生效的解决
2020/12/09 HTML / CSS
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
Regatta官网:英国最受欢迎的户外服装和鞋类品牌
2019/05/01 全球购物
《数星星的孩子》教学反思
2014/04/11 职场文书
介绍信怎么写
2015/01/30 职场文书
追讨欠款律师函
2015/05/27 职场文书
幼儿园安全管理制度
2015/08/05 职场文书