クラスのアップロード{
/**
* HTMLフォーム入力フィールドのname属性、デフォルトは「file」です
*/
var $file_field = 'ファイル' ;
/**
* * $_files 配列
*/
var $file_array;
/**
* * パスを保存します。デフォルトは現在のパスです
*/
var $save_path = '';
/**
*カスタマイズされたファイル名
*/
var $define_name;
/**
※最終的に保存されるファイル名
*/
var $name;
/**
* ファイルサイズ、単位: バイト
*/
var $size;
/**
※拡張子は「.」を除く
*/
var $ext;
/**
* * アップロードできるファイルの種類、デフォルトでは制限なし
*/
var $allow_ext = array();
/**
* * アップロードできるファイルの種類、デフォルトでは制限なし
*/
var $allow_size = false;
/**
※同名のファイルが既に存在する場合、上書きを許可するかどうかは、デフォルトでは上書きしないように設定されています。
*/
var $overwrite = false;
/**
* エラーメッセージ
*/
var $error_code;
/**
* コンストラクター
*/
パブリック関数 __construct(){
if(!is_uploaded_file($_files[$this->file_field]['tmp_name'])){
die("非法上传!");
}その他{
$this->file_array = $_files[$this->file_field];
$this->name = $this->getpro('name');
$this->size = $this->getpro('size');
$this->ext = $this->getpro('ext');
}
}
/**
*アップロード操作機能
* @abstract アップロードが成功した場合は true を返し、それ以外の場合は対応するエラー コードを返します
* @return 文字列またはブール
*/
パブリック関数アップロード(){
if(is_uploaded_file($this->file_array['tmp_name'])){
if(!empty($this->allow_ext)){
if(!in_array($this->ext,$this->allow_ext)){
$this->error_code = "不允许上传该类型文件!";
false を返します;
}
}
if(!@file_exists(iconv('utf-8','gbk',$this->save_path))){
$this->error_code = "ファイルのアップロード ディレクトリが存在しません!";
false を返す;
}
If(!is_writable(iconv('utf-8','gbk',$this->save_path))){
$this->error_code = "ファイルのアップロード ディレクトリに書き込むことができません!";
false を返す;
}
If($this->overwrite==false && @file_exists(iconv('utf-8','gbk',$this->save_path.$this->name))){
$this->error_code = "ファイルはすでに存在します!";
false を返す;
}
If($this->allow_size){
If($this->size > $this->allow_size){
return false;
}
}
$result = @move_uploaded_file($this->file_array['tmp_name'],iconv("utf-8","gbk",$this->save_path.$this->getpro("name"))) ;
if($result){
true を返す;
}その他{
switch($this->file_array['error']){
ケース 1:
$ This-& gt; error_code = "アップロードされたファイルが、upload_max_filesize オプションで制限された値を超えました!";
休憩;
ケース 2:
$this->error_code = "アップロードされたファイルのサイズが、max_file_size オプションで指定された値を超えています!";
休憩;
ケース 3:
休憩;
ケース 4:
休憩;
ケース6:
休憩;
ケース7:
$this->error_code = "ファイルの書き込みに失敗しました!";
休憩;
}
false を返す;
}
}
}
/**
*アップロード操作機能
* @abstract ファイル属性を取得します
* @param $itme: 文字列タイプ、有効な入力は name (ファイル名)、ext (ファイル拡張子)、size (ファイル サイズ) です
* @戻り文字列
*/
パブリック関数 getpro($item){
スイッチ($item){
ケース「名前」:
$filename = $this->file_array['name'];
return isset($this->define_name) ? $this->define_name.".".$this->ext : $filename;
壊す;
ケース "ext":
$filename = $this->file_array['name'];
$filter =explode(".",$filename);
return strto lower($filter[count($filter)-1]);
休憩;
ケース「サイズ」:
return $this->file_array['size'];
休憩;
デフォルト:
die("違法操作!");
休憩;
}
}
}
http://www.bkjia.com/PHPjc/631718.html
www.bkjia.comtruehttp://www.bkjia.com/PHPjc/631718.html技術記事 class Upload{ /*** HTMLフォーム入力フィールドのname属性、デフォルトは「file」です*/ var $file_field = 'file' /*** $_files 配列*/ var $file_array; /** * パスを保存します。デフォルトは現在のパスです...