您好,登錄后才能下訂單哦!
<?php //文件上傳類(功能) class FileUpload{ protected $upfile; protected $path; protected $error; protected $fileinfo; protected $typelist=array(); protected $maxsize=0; public function __construct($name,$path){ $this->upfile=$_FILES[$name]; $this->path=rtrim($path,"/")."/"; } public function __set($param,$value){ $this->$param=$value; } public function __get($param){ return $this->$param; } //驗證上傳的錯誤號 private function checkError(){ if($this->upfile['error']>0){ switch($this->upfile['error']){ case 1: $info="上傳文件大小超出PHP配置文件的設置"; break; case 2: $info="上傳文件大小超過了表單中MAX_FILE_SIZE指定的值"; break; case 3: $info="文件只有部分被上傳。"; break; case 4: $info="沒有文件被上傳。"; break; case 6: $info="找不到臨時文件夾。"; break; case 7: $info="文件寫入失敗。"; break; default: $info="未知錯誤"; break; } $this->error=$info; return false; } return true; } //驗證上傳類型 private function checkType(){ if(count($this->typelist)>0){ if(!in_array($this->upfile['type'],$this->typelist)){ $this->error="上傳文件類型錯誤:".$upfile['type']; return false; } } return true; } //驗證大小 private function checkSize(){ if($this->maxsize>0 && $this->upfile['size']>$this->maxsize){ $this->error="上傳文件大小超出了允許范圍!".$maxsize; return false; } return true; } //處理上傳的文件名 private function makeName(){ do{ //隨機一個文件名,格式:時間戳+4位隨機數+源后綴名 $newname = time().rand(1000,9999).".".pathinfo($this->upfile['name'],PATHINFO_EXTENSION); }while(file_exists($this->path.$newname)); //判斷隨機的文件名是否存在。 $this->fileinfo['savename']=$newname; return true; } //移動上傳文件 private function movefile(){ if(is_uploaded_file($this->upfile['tmp_name'])){ if(move_uploaded_file($this->upfile['tmp_name'],$this->path.$this->fileinfo['savename'])){ return true; }else{ $this->error='執行上傳文件移動失敗!'; } }else{ $this->error='不是一個有效的上傳文件!'; } return false; } //執行上傳 public function upload(){ return ($this->checkError() && $this->checkType() && $this->checkSize() && $this->makeName() && $this->movefile()); } } /* //創建上傳對象 $upfile = new FileUpload("pic","./public/uploads/"); //初始化屬性 $upfile->filetype=""; $upfile->maxsize=""; //執行上傳(成功返回true,失敗返回false) if($upfile->upload()){ echo $upfile->fileinfo['savename']; //獲取上后的文件名 }else{ echo $upfile->error; //獲取上傳失敗信息 } */
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。