PHP CKEditor 上传图片实现代码

2015-01-24信息快讯网

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 file_put_contents()功能函数(集成了fopen、fwrite、fclose)
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE eval()'d code error
rrmdir php中递归删除目录及目录下的文件
php中通过Ajax如何实现异步文件上传的代码实例
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
The specified CGI application misbehaved by not returning a complete set of HTTP headers
php中关于普通表单多文件上传的处理方法
Zend Studio (eclipse)使用速度优化方法
PHPUnit PHP测试框架安装方法
PHP中uploaded_files函数使用方法详解
PHP单元测试利器 PHPUNIT深入用法(三)第1/2页
PHP单元测试利器 PHPUNIT深入用法(二)第1/2页
php下安装配置fckeditor编辑器的方法
php文件上传表单摘自drupal的代码
DEDE采集大师官方留后门的删除办法
PHP 图片文件上传实现代码
php 将excel导入mysql
PHP 压缩文件夹的类代码
PHP 文件上传源码分析(RFC1867)
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
php 文件上传系统手记
使用zend studio for eclipse不能激活代码提示功能的解决办法
php程序之die调试法 快速解决错误
Discuz 6.0+ 批量注册用户名
火车头discuz6.1 完美采集的php接口文件
php getsiteurl()函数
PHP 内存缓存加速功能memcached安装与用法
php download.php实现代码 跳转到下载文件(response.redirect)
PHP has encountered an Access Violation at 7C94BD02解决方法
最新的php 文件上传模型,支持多文件上传
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
PHP 上传文件的方法(类)
PHP 配置文件中open_basedir选项作用
php 图片上传类代码
php 多个submit提交表单 处理方法
php fckeditor 调用的函数
php split汉字
©2014-2024 dbsqp.com