主题: 修改后的上传文件类PHP版 |
作者: 青春一度, 发布日期: 2007-11-11 13:44:24, 浏览数: 6742 |
KindEditor编辑器不错,只是对PHP上传文件进行了修改如下:
<?php #********************************************************* #文件名称: upload.php #功能描述: 上传文件类 #程序制作:留印(adleyliu) #联系qq :14339095 #联系邮箱:adleyliu@163.com #官方网站: http://www.115000.com.cn #Copyright (C) 2007-2008 115000.com.cn all rights reserved. #最后更新: 2007-11-11 #注:主要针对KindEditor在线编辑器PHP版上传文件进行的修改 #KindEditor下载 http://www.kindsoft.net # #********************************************************* //声明一个上传类 $yl_upload = new yl_upload_class(); //设置参数 global $yl_filedata,$yl_directroy,$file_urldirectroy,$yl_settingsnew; global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext; $yl_filedata = 'fileData';//表单名 $yl_directroy = '../upload_file';//上传主目录 $file_urldirectroy = '/webroot/upload_file';//文件url可以是绝对路径 $yl_settingsnew = 'month_'.date('Ym');//上传主目录1按版块存入不同目录,2按月份存入不同目录,3按天存入不同目录 $yl_maxsize = 2097152; //这里以字节为单位(1024*2)*1024=2097152 =2M $yl_sizeformat = 'k'; //显示文件大小单位b字节,k千,m兆 $yl_arrext = array('gif','jpg','jpeg','png','bmp');//允许上传文件类型 $yl_ext = 0; //0原文件类型上传,1统一为存为jpg //KindEditor编辑器中上传图片参数 global $imgWidth, $imgHeight, $imgBorder,$imgTitle,$imgAlign,$imgHspace,$imgVspace; $imgWidth = $_POST['imgWidth']; $imgHeight = $_POST['imgHeight']; $imgBorder = $_POST['imgBorder']; $imgTitle = $_POST['imgTitle']; $imgAlign = $_POST['imgAlign']; $imgHspace = $_POST['imgHspace']; $imgVspace = $_POST['imgVspace']; //上传 $yl_upload -> yl_uploadfile(); class yl_upload_class { #********************************************************* #创建目录函数 #********************************************************* function createfolder($yl_path) { if (!file_exists($yl_path)) { $this -> createfolder(dirname($yl_path)); @mkdir($yl_path, 0777); } return $this -> createfolder; } #********************************************************* #获取文件名称,大小,类型,临时文件名 #********************************************************* function yl_getfilename($yl_type) { global $yl_filedata,$yl_directroy,$yl_settingsnew; global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext; return $_FILES[$yl_filedata][$yl_type]; } #********************************************************* #获取文件大小 #********************************************************* function yl_getfilesize() { global $yl_filedata,$yl_directroy,$yl_settingsnew; global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext; if($this -> yl_getfilename('size') == 0){ $this -> alert("请选择上传文件!"); exit; } if($this -> yl_getfilename('size') > $yl_maxsize){ $yl_maxsizek=$yl_maxsize/1024; $this -> alert("上传文件超出限制范围$yl_maxsizek.K!"); exit; } switch (strtolower($yl_sizeformat)){ case 'b': return $this -> yl_getfilename('size') . ' B'; break; case 'k': return ($this -> yl_getfilename('size')/1024) . ' K'; break; case 'm': return ($this -> yl_getfilename('size'))/(1024*1024) . ' M'; } } #********************************************************* #获得文件扩展名 #********************************************************* function yl_getfiletype() { global $yl_filedata,$yl_directroy,$yl_settingsnew; global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext; $yl_temp_arr = explode(".", $this -> yl_getfilename('name')); $yl_file_ext = array_pop($yl_temp_arr); $yl_file_ext = trim($yl_file_ext); $yl_file_ext = strtolower($yl_file_ext); //检查扩展名 if (in_array($yl_file_ext, $yl_arrext) === false) { $this -> alert("上传文件类型被限制!"); exit; } return $yl_file_ext; } #********************************************************* #上传 #********************************************************* function yl_uploadfile() { global $yl_filedata,$yl_directroy,$file_urldirectroy,$yl_settingsnew; global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext; $yl_file_nameold = $this -> yl_getfilename('name');//原文件名 $yl_file_namenews = date('Ymd').'_'.md5(date('YmdHis'));//重命名 if($yl_ext == 0){ $yl_file_names = $yl_file_namenews.'.'.$this -> yl_getfiletype();//改名 }elseif ($yl_ext == 1){ $yl_file_names = $yl_file_namenews.'.jpg';//统一改名为jpg } $yl_tmp_name = $this -> yl_getfilename('tmp_name');//服务器上临时文件名 $yl_file_size = $this -> yl_getfilesize();//获取文件大小 $yl_file_type = $this -> yl_getfiletype();//获取文件类型 $yl_file_path = $yl_directroy.'/'.$yl_settingsnew;//建立一个目录 //检查目录是否存在,不存在则创建 if(@is_dir($yl_file_path) === false) { $this -> createfolder(''.$yl_file_path.'');//创建目录 } //检查是否已上传 if(@is_uploaded_file($yl_tmp_name) === false) { $this -> alert("文件已上传!"); exit; } //检查目录写权限 if (@is_writable($yl_file_path) === false) { $this -> alert("上传目录没有写权限!"); exit; } $yl_doupload = @copy($yl_tmp_name, ''.$yl_file_path.'/'.$yl_file_names.''); if($yl_doUpload === false) { $this -> alert("上传失败!"); } global $imgWidth, $imgHeight, $imgBorder,$imgTitle,$imgAlign,$imgHspace,$imgVspace; $file_url = $file_urldirectroy.'/'.$yl_settingsnew.'/'.$yl_file_names; //插入图片,关闭层 echo '<html>'; echo '<head>'; echo '<title>Insert Image</title>'; echo '<meta http-equiv="content-type" content="text/html; charset=utf-8">'; echo '</head>'; echo '<body>'; echo '<script type="text/javascript">parent.KindInsertImage("","","'.$file_url.'","'.$imgWidth.'","'.$imgHeight.'","'.$imgBorder.'","'.$imgTitle.'","'.$imgAlign.'","'.$imgHspace.'","'.$imgVspace.'");</script>'; echo '</body>'; echo '</html>'; return; } #********************************************************* #*删除文件 #********************************************************* function delfile() { global $yl_filedata,$yl_directroy,$yl_settingsnew; global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext; $yl__dir = dirname(trim($yl_directroy)); if( $this->_isDel( $yl__dir ) ) { return @unlink( $yl_directroy ) ? true : false; }else{ return false; } } #********************************************************* #删除目录 目录下如果有文件不能删除 #********************************************************* function deldir( ) { global $yl_filedata,$yl_directroy,$yl_settingsnew; global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext; if( $this->_isdel($yl_directroy) && is_dir( $yl_directroy ) ) { return @rmdir( $yl_directroy ) ? true : false; }else{ return false; } } #********************************************************* #提示 #********************************************************* function alert($yl_msg) { echo '<html>'; echo '<head>'; echo '<title>error</title>'; echo '<meta http-equiv="content-type" content="text/html; charset=utf-8">'; echo '</head>'; echo '<body>'; echo '<script type="text/javascript">alert("'.$yl_msg.'");;</script>'; echo '</body>'; echo '</html>'; exit; } } ?> |