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汉字