<?php
// ****************************************************
// 文件上传基本类 Xupload_class 提供的操作函数
// ****************************************************
// SetMinFileSize( value As Integer )	设置上传文件的最小字节数，默认值为 1
// SetMaxFileSize( value As Integer )	设置上传文件的最大字节数，默认值为 10485760（10MB）
// SetMaxFileCount( value As Integer )	设置指定一次上传允许的最大文件数量，默认值为 100
// SetMaxTotalSize( value As Integer )	设置指定一次上传允许的总数据量（字节），默认值为 10485760（10MB）
// SetAllowExt( value As String )	设置允许上传的文件类型，不分大小写，多个名字间用分号分割，默认值为 "" 
// SetDenyExt( value As String )	设置不允许上传的文件类型，不分大小写，多个名字间用分号分割，默认值为 "asa;asp;cdx;cer;aspx;php"
// SetThumbImage( value As String )	设置JPG缩略图参数：width * height，默认值为 "" 
// SetStatURL( value As String )	设置上传统计页面，默认值为 "" 
// SetOverlayMode( value As Boolean )	设置文件覆盖模式设置，默认值为 false 

// GetVersion( )	返回类的版本号
// IsError( )	返回在上传过程中是否过出现错误
// OutErr( message As String )	输出错误（调试）信息
// Out( message As String )	输出上传结果

// InitParameters( )	执行运行参数的初始化操作
// IsUploadFile( )	检测文件上传操作是否完成
// SaveToFile( filename As String )	将上传的文件保存起来，并返回存储的文件名（返回空串表示失败）
// HasThumbImage( )	检测在上传数据中是否包含缩略图数据
// SaveThumbToFile( filename As String )	将上传的缩略图文件保存起来，并返回存储的文件名（返回空串表示失败）
// CreateFileName( base As String, subpath As String, filename As String )	构建上传文件的存储地址，结果为 base\subpath\filename ，返回空串表示构建失败
// CreateFileURL( base As String, subpath As String, filename As String )	构建上传文件的访问地址，结果为 base/subpath/filename ，返回空串表示构建失败

// ****************************************************
// 设置上传参数，您可以依据您的情况进行设置
// ****************************************************
include("xu_class.php");
$myUpload = new XUpload_class;

// 限制每个上传文件的最小长度（1 表示允许无数据的文件）
$myUpload->SetMinFileSize(1);

// 限制每个上传文件的最大长度（10485760 = 10 兆字节）
$myUpload->SetMaxFileSize(204857600);

// 限制一次可以上传的文件数量
$myUpload->SetMaxFileCount(10);

// 限制所有上传文件的长度之和
$myUpload->SetMaxTotalSize(10485760 * 2);

// 允许上传的文件类型，不分大小写，多个名字间用分号分割
$myUpload->SetAllowExt("mp3;wma");

// 不允许上传的文件类型，不分大小写，多个名字间用分号分割
$myUpload->SetDenyExt("");

// JPG缩略图参数（为空则不生成缩略图）：width * height
$myUpload->SetThumbImage("");

// 上传统计页面，每个文件上传后将上传结果传递给这个页面（可以为空）
$myUpload->SetStatURL("upstat.php?tag=");

// 文件覆盖模式设置（是否覆盖原同名文件）
$myUpload->SetOverlayMode(false);

$myUpload->InitParameters();
// ****************************************************

if ($myUpload->IsUploadFile()) {
	// 表单数据项：
	//	xu_subpath	子文件夹参数（可做文件分类用）
	//	xu_filename	上传文件的文件名
	//	xu_filetype	上传文件的文件类型
	//	xu_filesize	上传文件的文件长度（字节）
	//	xu_thumbtag	缩略图标志
	//	xu_thumbsize	缩略图文件数据长度（字节）
	if (get_magic_quotes_gpc()) {
		// 修正表单数据项
		$_POST['xu_subpath'] = stripslashes($_POST['xu_subpath']);
		$_POST['xu_filename'] = stripslashes($_POST['xu_filename']);
	}
        //  给文件名加上随机数字
       // $xs_filename=explode($_POST['xu_filetype'],$_POST['xu_filename']);
       // $x_filename=rand(1000,9999)."-".$xs_filename[0];
        $x_filename=$_POST['xu_filename'];
        // 按日期创建文件夹
 	$nowdate="../../upload/".$_POST['xu_subpath']."/".date('Ymd');
        $xsubpath=$_POST['xu_subpath']."/".date('Ymd'); 
  	    if(!file_exists($nowdate)){
		    @mkdir($nowdate,0777);
    	    }
	// 将文件保存在 [$nowdate] 下
	$filename = $myUpload->CreateFileName("../../upload",$xsubpath,$x_filename);
	if ($filename != "") $filename = $myUpload->SaveToFile($filename);
	if ($filename != "") {
		// 上传成功，构建上传文件的访问地址
		$filename = $myUpload->CreateFileURL("../../upload",$xsubpath,$filename);
                //清空缓存目录
		$d=_CHSHDJ_ROOT_."_temp";
		if (is_dir($d)) {
	  		$dh=opendir($d);//打开目录
 			 while (false !== ( $file = readdir ($dh))) {
   				if($file!="." && $file!="..") { 
      				   $fullpath=$d."/".$file;
      				   if(!is_dir($fullpath)) {
         			 	unlink($fullpath);//删除目录中的所有文件
     				   } 
				}
   		 	 }
   		 	closedir($dh);
		}
		// 将访问地址加上访问路径
		if ($filename{0} != '/') $filename = dirname($_SERVER['PHP_SELF']) . "/" . $filename;
		// 返回上传文件的访问地址（成功后必须返回一个值）
		$myUpload->Out($filename);
	}
}
?>