PHP CKEditor 上传图片实现代码

 更新时间:2009年11月06日 00:28:11   作者:  
CKEditor的原包中没有包含图片的上传服务器端处理文件,其公司的另一款开源产品:CKFinder做了很好的补充。但是要下载这个源代码再进行配置,虽然方便了很多,但是仅仅为了上传图片,却要使用这么大的整个系统来使用,确实有点大材小用。
我花了一个下午的时间,自己用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自动给网址加上链接的方法

    这篇文章主要介绍了php自动给网址加上链接的方法,可实现对本文中的网址加上链接的功能,涉及正则匹配的相关技巧,需要的朋友可以参考下
    2015-06-06
  • php下尝试使用GraphicsMagick的缩略图功能

    php下尝试使用GraphicsMagick的缩略图功能

    现在,对一个Web程序员来说,图像处理已经属于必会知识之一了。且不说Flickr,Yupoo等专业图片分享网站,就算是一个和图片分享不沾边的网站,也会用到很多图片处理的功能,比如说:用户上传头像,然后自动生成缩略图。
    2011-01-01
  • php学习之function的用法

    php学习之function的用法

    用户自定义函数也称自定义函数,它们不是PHP提供的,是由程序员创建的.由于自己创建了这样的函数,所以就可以完全控制这些函数.因此可以让一个函数完全按照自己希望的方式运行
    2012-07-07
  • PHP生成网站桌面快捷方式代码分享

    PHP生成网站桌面快捷方式代码分享

    这篇文章主要介绍了PHP生成网站桌面快捷方式代码分享,代码很简单,复制改一下域名即可使用,需要的朋友可以参考下
    2014-10-10
  • PHP生成随机数的方法总结

    PHP生成随机数的方法总结

    本篇文章给大家总结了PHP生成随机数的方法并把相关的代码做了分享,有需要的读者们参考学习下吧。
    2018-03-03
  • php中json_encode处理gbk与gb2312中文乱码问题的解决方法

    php中json_encode处理gbk与gb2312中文乱码问题的解决方法

    这篇文章主要介绍了php中json_encode处理gbk与gb2312中文乱码问题的解决方法,需要的朋友可以参考下
    2014-07-07
  • 从PHP $_SERVER相关参数判断是否支持Rewrite模块

    从PHP $_SERVER相关参数判断是否支持Rewrite模块

    这篇文章主要介绍了如何通过判断PHP $_SERVER相关参数来验证页面是否重定向,但这只是在Apache环境下才有效,下面来具体的看下
    2013-09-09
  • PHP获取数组最大值下标的方法

    PHP获取数组最大值下标的方法

    这篇文章主要介绍了PHP获取数组最大值下标的方法,涉及php中max及array_search等函数操作数组的相关技巧,需要的朋友可以参考下
    2015-05-05
  • PHP伪造referer实例代码

    PHP伪造referer实例代码

    伪造referer实例代码,主要用于一些突破防盗链
    2008-09-09
  • PHP数组去重的更快实现方式分析

    PHP数组去重的更快实现方式分析

    这篇文章主要介绍了PHP数组去重的更快实现方式,结合实例形式对比分析了php实现数组去重的各种常见操作技巧与注意事项,需要的朋友可以参考下
    2018-05-05

最新评论