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创建基本身份认证站点的方法详解
Jun 08 PHP
PHP实现删除非站内外部链接实例代码
Jun 17 PHP
PHPUnit安装及使用示例
Oct 29 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
Aug 27 PHP
thinkphp多层MVC用法分析
Dec 30 PHP
php实现图片上传并利用ImageMagick生成缩略图
Mar 14 PHP
PHP匿名函数和use子句用法实例
Mar 16 PHP
Zend Framework数据库操作方法实例总结
Dec 11 PHP
php实现的简单中文验证码功能示例
Jan 03 PHP
php7安装yar扩展的方法详解
Aug 03 PHP
PHP实现cookie跨域session共享的方法分析
Aug 23 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
虫族 ZERG 概述
2020/03/14 星际争霸
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
php class中public,private,protected的区别以及实例分析
2013/06/18 PHP
PHP实现文件下载断点续传详解
2014/10/15 PHP
Zend Framework自定义Helper类相关注意事项总结
2016/03/14 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
JavaScript小技巧 2.5 则
2010/09/12 Javascript
函数window.open实现关闭所有的子窗口
2015/08/03 Javascript
JS实现的3D拖拽翻页效果代码
2015/10/31 Javascript
JavaScript计划任务后台运行的方法
2015/12/18 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
2016/05/17 Javascript
浅谈Angular中ngModel的$render
2016/10/24 Javascript
NodeJS处理Express中异步错误
2017/03/26 NodeJs
基于BootStrap的前端分页带省略号和上下页效果
2017/05/18 Javascript
详解ES6之async+await 同步/异步方案
2017/09/19 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
node通过npm写一个cli命令行工具
2017/10/12 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
2018/03/01 Javascript
vue-cli3项目打包后自动化部署到服务器的方法
2020/09/16 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
[44:39]2014 DOTA2国际邀请赛中国区预选赛 NE VS CNB
2014/05/21 DOTA
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
Python中isnumeric()方法的使用简介
2015/05/19 Python
Python只用40行代码编写的计算器实例
2017/05/10 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
python中实现字符串翻转的方法
2018/07/11 Python
Python通用函数实现数组计算的方法
2019/06/13 Python
Python如何读取文件中图片格式
2020/01/13 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
管道维修工岗位职责
2013/12/27 职场文书
个人函授自我鉴定
2014/03/25 职场文书
《小猪家的桃花树》教学反思
2014/04/11 职场文书