标题:[原创]php版上传类
取消只看楼主
adleyliu
Rank: 1
等 级:新手上路
帖 子:146
专家分:0
注 册:2005-5-8
 问题点数:0 回复次数:1 
[原创]php版上传类
*/ --------------------------------------------------------------------------------------
*/ 出自: 编程中国 http://www.bc-cn.net
*/ 作者: adleyliu E-mail:adleyliu@163.com QQ:14339095
*/ 时间: 2007-11-11 编程论坛首发
*/ 声明: 尊重作者劳动,转载请保留本段文字
*/ --------------------------------------------------------------------------------------

针对KindEditor 在线编辑器中的PHP上传文件进行修改。
下载

<?php
#*********************************************************
#文件名称: yl_upload.class.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
#注:转发时请保留此声明信息,这段声明不并会影响你的速度!
#如有修改请将修改后的文件以邮件形式发送给作者一份,谢谢!
#
#*********************************************************
/*
//使用说明:
//声明一个上传类
$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 = 'upload_file';//文件url(在编辑器KindEditor中用到,请查看upload.php实例)
$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
//上传
$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("上传失败!");
}else{
echo '上传成功';
echo '<br>';
echo '文件目录:'.$yl_file_path.'';
echo '<br>';
echo '原文件名:'.$yl_file_nameold.'';
echo '<br>';
echo '新文件名:'.$yl_file_names.'';
echo '<br>';
echo '文件大小:'.$yl_file_size.'';
echo '<br>';
echo '文件类型:'.$yl_file_type.'';
}
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=gb2312">';
echo '</head>';
echo '<body>';
echo '<script type="text/javascript">alert("'.$yl_msg.'");;</script>';
echo '</body>';
echo '</html>';
exit;
}
}

?>

[此贴子已经被作者于2007-11-12 9:18:30编辑过]

搜索更多相关主题的帖子: php adleyliu 中国 target 
2007-11-11 17:04
adleyliu
Rank: 1
等 级:新手上路
帖 子:146
专家分:0
注 册:2005-5-8
得分:0 

易点通WEB源http://www..cn/ QQ:14339095 E-mail:adleyliu@
2007-11-16 16:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-185276-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.801700 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved