<?
php
/* *
*说明: 批量文件上传
*version 2.0
*@author sanshi(叁石)
*QQ: 35047205
*MSN: sanshi0815@tom.com
*Create 2007/5/11
* */
include_once ( dirname ( __FILE__ ) . " /FileIO.class.php " );
class Upload{
// 设置文件上传的最大量
var $uploadFileFize = 100 ;
var $tempFileName = array ();
var $uploadFileName = array ();
function Upload()
{
$this -> uploadFileFize = $this -> uploadFileFize * 1024 ;
}
function init( $fileField , $fileType = ' img ' )
{
// 同意上传的类型
$allowFile [ ' img ' ] = array ( ' jpg ' , ' bmp ' , ' jpeg ' );
$allowFile [ ' file ' ] = array ( ' rar ' , ' zip ' );
// 取得类别
$fileType = strtolower ( $fileType );
if ( $fileType != ' img ' && $fileType != ' file ' ) $fileType = ' img ' ;
// 取得上传的文件属性
//print_r($_FILES);
$files = $_FILES [ $fileField ];
for ( $i = 0 ; $i < count ( $files [ ' name ' ]); $i ++ )
{
$fileName = $files [ ' name ' ][ $i ]; // 文件名
if ( $fileName == "" ) continue ;
$this -> uploadFileName[] = $fileName ;
$fileTemp = $files [ ' tmp_name ' ][ $i ]; // 临时文件名
$this -> tempFileName[] = $fileTemp ;
$fileSize = $files [ ' size ' ][ $i ]; // 文件大小
//取得文件后缀
$this -> uploadFileType = FileIO :: getFileType( $fileName );
// 判断文件的大小
if ( $fileSize > $this -> uploadFileFize)
{
goToError( " 文件最大 {$this->uploadFileFize} k! {$fileName} 超大 " );
return false ;
}
// 判断文件类型是否符合
if ( ! in_array ( $this -> uploadFileType , $allowFile [ $fileType ]))
{
goToError( " {$fileName} 文件类型不符合要求 只能是 " . implode ( ' , ' , $allowFile [ $fileType ]));
return false ;
}
}
return true ;
}
// 取得上传文件名
function getUploadFileName( $uploadFile )
{
$name = "" ;
$name = date ( ' Y-m/ ' ) . date ( " Y,m,d,H,i,s " ) . " _ " . $uploadFile ;
return $name ;
}
// 上传执行
function exec ( $upLoadDir )
{
// 设置错误数组
$suc = array ();
// 处理目录字符串
$upLoadDir = preg_replace ( ' ' , ' / ' , $upLoadDir );
// 判断是否有/
if ( substr ( $upLoadDir , 0 ,- 1 ) != " / " ) $upLoadDir . ' / ' ;
// 判断目标文件是否为空
if ( empty ( $this -> tempFileName)) return false ;
for ( $i = 0 ; $i < count ( $this -> tempFileName); $i ++ )
{
// 创建目录 添加文件名
$fileName = $this -> getUploadFileName( $this -> uploadFileName[ $i ]);
// 设置上传的物理路径
$upLoadFile = $upLoadDir . $fileName ;
// 检查目录是否存在
$rUpLoadDir = dirname ( $upLoadFile );
if ( ! FileIO :: isDirExists( $rUpLoadDir ))
{
if ( ! FileIO :: createDir( $rUpLoadDir ))
{
goToError( " 建立 {$rUpLoadDir} 目录失败! " );
return false ;
}
}
// 复值给目录默认文件
$this -> uploadFileName[ $i ] = $fileName ;
// 上传文件
if (@ move_uploaded_file ( $this -> tempFileName[ $i ] , $upLoadFile ))
{
$suc [] = $this -> uploadFileName[ $i ];
}
}
// 驱除数组里相同的值,如果同时上传了同一个文件,上传的时候将覆盖
return array_unique ( $suc );
}
}
/*
此类作为一个多文件的长传类,就是一个文件,也要使用数组形式
返回上传成功的文件
此文件用了 FileIO 类里的,几个函数
现在放在下面方便大家以后移植使用
//取得文件后缀
function getFileType($fileName)
{
return end(explode('.',$fileName));
}
//建立目录
function createDir($dirName)
{
//echo $dirName;exit();
global $FILEERRORMSG;
$dirName = str_replace("/","/",$dirName);
$dirArr = explode('/',$dirName);
$dirTemp = "";
foreach( (array)$dirArr as $dir )
{
if( empty($dir) ) continue;
$dirTemp.= $dir."/";
if( !is_dir($dirTemp) )
{
if( !@mkdir($dirTemp,0777) )
{
trigger_error($FILEERRORMSG[0],SystemExceptionType(2));
return false;
}
}
}
return true;
}
//检查目录是否存在
function isDirExists( $dirName )
{
return file_exists( $dirName ) && is_dir( $dirName );
}
*/
?>
/* *
*说明: 批量文件上传
*version 2.0
*@author sanshi(叁石)
*QQ: 35047205
*MSN: sanshi0815@tom.com
*Create 2007/5/11
* */
include_once ( dirname ( __FILE__ ) . " /FileIO.class.php " );
class Upload{
// 设置文件上传的最大量
var $uploadFileFize = 100 ;
var $tempFileName = array ();
var $uploadFileName = array ();
function Upload()
{
$this -> uploadFileFize = $this -> uploadFileFize * 1024 ;
}
function init( $fileField , $fileType = ' img ' )
{
// 同意上传的类型
$allowFile [ ' img ' ] = array ( ' jpg ' , ' bmp ' , ' jpeg ' );
$allowFile [ ' file ' ] = array ( ' rar ' , ' zip ' );
// 取得类别
$fileType = strtolower ( $fileType );
if ( $fileType != ' img ' && $fileType != ' file ' ) $fileType = ' img ' ;
// 取得上传的文件属性
//print_r($_FILES);
$files = $_FILES [ $fileField ];
for ( $i = 0 ; $i < count ( $files [ ' name ' ]); $i ++ )
{
$fileName = $files [ ' name ' ][ $i ]; // 文件名
if ( $fileName == "" ) continue ;
$this -> uploadFileName[] = $fileName ;
$fileTemp = $files [ ' tmp_name ' ][ $i ]; // 临时文件名
$this -> tempFileName[] = $fileTemp ;
$fileSize = $files [ ' size ' ][ $i ]; // 文件大小
//取得文件后缀
$this -> uploadFileType = FileIO :: getFileType( $fileName );
// 判断文件的大小
if ( $fileSize > $this -> uploadFileFize)
{
goToError( " 文件最大 {$this->uploadFileFize} k! {$fileName} 超大 " );
return false ;
}
// 判断文件类型是否符合
if ( ! in_array ( $this -> uploadFileType , $allowFile [ $fileType ]))
{
goToError( " {$fileName} 文件类型不符合要求 只能是 " . implode ( ' , ' , $allowFile [ $fileType ]));
return false ;
}
}
return true ;
}
// 取得上传文件名
function getUploadFileName( $uploadFile )
{
$name = "" ;
$name = date ( ' Y-m/ ' ) . date ( " Y,m,d,H,i,s " ) . " _ " . $uploadFile ;
return $name ;
}
// 上传执行
function exec ( $upLoadDir )
{
// 设置错误数组
$suc = array ();
// 处理目录字符串
$upLoadDir = preg_replace ( ' ' , ' / ' , $upLoadDir );
// 判断是否有/
if ( substr ( $upLoadDir , 0 ,- 1 ) != " / " ) $upLoadDir . ' / ' ;
// 判断目标文件是否为空
if ( empty ( $this -> tempFileName)) return false ;
for ( $i = 0 ; $i < count ( $this -> tempFileName); $i ++ )
{
// 创建目录 添加文件名
$fileName = $this -> getUploadFileName( $this -> uploadFileName[ $i ]);
// 设置上传的物理路径
$upLoadFile = $upLoadDir . $fileName ;
// 检查目录是否存在
$rUpLoadDir = dirname ( $upLoadFile );
if ( ! FileIO :: isDirExists( $rUpLoadDir ))
{
if ( ! FileIO :: createDir( $rUpLoadDir ))
{
goToError( " 建立 {$rUpLoadDir} 目录失败! " );
return false ;
}
}
// 复值给目录默认文件
$this -> uploadFileName[ $i ] = $fileName ;
// 上传文件
if (@ move_uploaded_file ( $this -> tempFileName[ $i ] , $upLoadFile ))
{
$suc [] = $this -> uploadFileName[ $i ];
}
}
// 驱除数组里相同的值,如果同时上传了同一个文件,上传的时候将覆盖
return array_unique ( $suc );
}
}
/*
此类作为一个多文件的长传类,就是一个文件,也要使用数组形式
返回上传成功的文件
此文件用了 FileIO 类里的,几个函数
现在放在下面方便大家以后移植使用
//取得文件后缀
function getFileType($fileName)
{
return end(explode('.',$fileName));
}
//建立目录
function createDir($dirName)
{
//echo $dirName;exit();
global $FILEERRORMSG;
$dirName = str_replace("/","/",$dirName);
$dirArr = explode('/',$dirName);
$dirTemp = "";
foreach( (array)$dirArr as $dir )
{
if( empty($dir) ) continue;
$dirTemp.= $dir."/";
if( !is_dir($dirTemp) )
{
if( !@mkdir($dirTemp,0777) )
{
trigger_error($FILEERRORMSG[0],SystemExceptionType(2));
return false;
}
}
}
return true;
}
//检查目录是否存在
function isDirExists( $dirName )
{
return file_exists( $dirName ) && is_dir( $dirName );
}
*/
?>