define('NO_FILE', 'アップロードされたファイルは存在しません');
define('NOT_ALLOW_EXT', 'ファイルの種類が許可された範囲内にありません');
define('NOT_ALLOW_SIZE', 'ファイルサイズが許容範囲内にありません');
define('HAS_THE_FILE', 'ファイルはすでに存在します');
定義('UPLOAD_FAILED', 'アップロードに失敗しました');
定義('UPLOAD_SUCCESS', 'アップロード成功');
クラスファイルアップローダー
{ var $_file;
var $_filesize;
var $_fileext;
var $_filedir;
var $_filename;
var $_filetmpname;
var $allowsize;
var $allowext;
var $neednewname;
var $newname;
var $syslang;
var $report;
functionready($filedir = '', $file, $allowsize = '', $allowext = '', $neednewname = false, $report = 0){
$this->_filedir = is_dir($filedir) ? $filedir : '';
if(empty($file) || !isset($file['size']) || $file['size'] == 0) $this->error(NO_FILE);
$this->_filesize = $file['size'];
$this->_filename = $file['name'];
$this->_filetmpname = $file['tmp_name'];
$this->allowsize = $allowsize;
$this->allowext = $allowext;
$this->neednewname = ($neednewname) ? true : false;
$this->新しい名前 = '';
$this->レポート = $レポート;
}
関数 do_upload(){
if(!is_uploaded_file($this->_filetmpname)) $this->error(NO_FILE);
if($this->chk_ext()){
$this->error(NOT_ALLOW_EXT);
戻ります '';
}
if($this->chk_size()){
$this->error(NOT_ALLOW_SIZE);
戻ります '';
}
if($this->neednewname) $this->newname = $this->generate_name().".".$this->get_fileext();
if($this->chk_hasfile()){
$this->error(HAS_THE_FILE);
戻ります '';
}
$filename = empty($this->newname) ? @iconv('utf-8','gb2312',$this->_filename) : $this->newname;
@chmod($this->_filedir.$filename, 0777);
if(move_uploaded_file($this->_filetmpname, $this->_filedir.$filename)){
$this->result(); を返す
}その他{
$this->error(UPLOAD_FAILED);
戻ります '';
}
}
関数 chk_ext(){
if(empty($this->allowext) || in_array($this->get_fileext(),explode("|",$this->allowext))) return false;
true を返します;
}
関数chk_size(){
if(empty($this->allowsize) || get_filesize <= $this->allowsize*1024*1024) return false;
true を返します;
}
関数 get_filesize(){
$this->_filesize を返す;
}
関数 get_fileext(){ return substr($this->_filename,strrpos($this->_filename,".")+1);
}
関数generate_name(){
return substr(md5(time()),26);
}
関数chk_hasfile(){
return is_file($this->_filedir.$this->_filename);
}
関数エラー($tip){
エコー $tip;
}
関数 result(){
if($this->レポート){
$filename = empty($this->newname) ? $this->_filename : $this->新しい名前;
$arr = array('filename' => $filename, 'filesize' => $this->_filesize, 'tip' => UPLOAD_SUCCESS);
$arr を返します;
}その他{
UPLOAD_SUCCESS を返します;
}
}
}
/***使用方法とパラメーター***/
/***
最初のパラメータ $dir は、アップロードされたファイルが保存されるパスです
2 番目のパラメーターは $_FILES で、アップロード ファイル変数です
3 番目のパラメーターでは、ファイル サイズを MB 単位で指定できます
4 番目のパラメータで許可されるファイルの種類は jpg|png|gif です
5 番目のパラメーターは新しいファイル名を生成する必要がありますか?
6 番目のパラメータは返されるプロンプト形式です。0 は正しいアップロードの直接プロンプトを意味します。1 は配列 array('filename' => $filename, 'filesize' => $this->_filesize, 'tip' =>) を返します。 ; アップロード_成功);
***/
//require("类文件");
//$u = 新しいファイルアップローダー;
//$u->ready($dir, $_FILES['upload_file'], false, false, true, 0);
//エコー $u->do_upload();
?>
|