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利用header函数实现文件下载时直接提示保存
Nov 12 PHP
php设计模式 Observer(观察者模式)
Jun 26 PHP
php curl选项列表(超详细)
Jul 01 PHP
php类中的各种拦截器用法分析
Nov 03 PHP
thinkPHP中create方法与令牌验证实例浅析
Dec 08 PHP
PHP快速排序quicksort实例详解
Sep 28 PHP
php实用代码片段整理
Nov 12 PHP
php实现遍历文件夹的方法汇总
Mar 02 PHP
php分页查询的简单实现代码
Mar 14 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
php生成二维码不保存服务器还有下载功能的实现代码
Aug 09 PHP
Centos7安装swoole扩展操作示例
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
PHP易混淆知识整理笔记
2015/09/24 PHP
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
PHP简单实现DES加密解密的方法
2016/07/12 PHP
javascript 短路法代码精简
2009/08/20 Javascript
下载站控制介绍字数显示的脚本 显示全部 隐藏介绍等功能
2009/09/19 Javascript
Extjs入门之动态加载树代码
2010/04/09 Javascript
js原型链原理看图说明
2012/07/07 Javascript
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
JS修改css样式style浅谈
2013/05/06 Javascript
jQuery前端开发35个小技巧
2016/05/24 Javascript
javascript中Number的方法小结
2016/11/21 Javascript
canvas实现图片根据滑块放大缩小效果
2017/02/24 Javascript
详解JS数据类型的值拷贝函数(深拷贝)
2017/07/13 Javascript
jquery实现的简单轮播图功能【适合新手】
2018/08/17 jQuery
js实现下拉框二级联动
2018/12/04 Javascript
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
NodeJS实现一个聊天室功能
2019/11/25 NodeJs
js轮播图之旋转木马效果
2020/10/13 Javascript
微信小程序:报错(in promise) MiniProgramError
2020/10/30 Javascript
使用Vue实现一个树组件的示例
2020/11/06 Javascript
[59:53]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第二场 3月6日
2021/03/11 DOTA
Python比较两个图片相似度的方法
2015/03/13 Python
对python的文件内注释 help注释方法
2018/05/23 Python
《与孩子一起学编程》python自测题
2018/05/27 Python
Python3安装pip工具的详细步骤
2019/10/14 Python
django正续或者倒序查库实例
2020/05/19 Python
浅析Python的命名空间与作用域
2020/11/25 Python
canvas与html5实现视频截图功能示例
2016/12/15 HTML / CSS
美国内衣第一品牌:Hanes(恒适)
2016/07/29 全球购物
美国婴儿用品店:Babies”R”Us
2017/10/12 全球购物
为什么要使用servlet
2016/01/17 面试题
秋季运动会广播稿(30篇)
2014/09/13 职场文书
学术会议通知
2015/04/15 职场文书
同事离别感言
2015/08/04 职场文书
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL