適用于初學者的簡易PHP文件上傳類
更新時間:2015年10月29日 14:32:17 投稿:lijiao
這篇文章主要為大家分享了一個適用于初學者的簡易PHP文件上傳類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例講述了PHP多文件上傳類,分享給大家供大家參考。具體如下:
<?php class Test_Upload{ protected $_uploaded = array(); protected $_destination; protected $_max = 1024000; protected $_messages = array(); protected $_permited = array( 'image/gif', 'image/jpeg', 'image/pjpeg', 'image/png' ); protected $_renamed = false; /** * * @param mix $path * */ public function __construct($path){ if (!is_dir($path) || !is_writable($path)){ throw new Exception("文件名不可寫,或者不是目錄!"); } $this->_destination = $path; $this->_uploaded = $_FILES; } /** * 移動文件 * */ public function move(){ $filed = current($this->_uploaded); $isOk = $this->checkError($filed['name'], $filed['error']); //debug ok if ($isOk){ $sizeOk = $this->checkSize($filed['name'], $filed['size']); $typeOk = $this->checkType($filed['name'], $filed['type']); if ($sizeOk && $typeOk){ $success = move_uploaded_file($filed['tmp_name'], $this->_destination.$filed['name']); if ($success){ $this->_messages[] = $filed['name']."文件上傳成功"; }else { $this->_messages[] = $filed['name']."文件上傳失敗"; } } } } /** * 查詢messages數(shù)組內(nèi)容 * */ public function getMessages(){ return $this->_messages; } /** * 檢測上傳的文件大小 * @param mix $string * @param int $size */ public function checkSize($filename, $size){ if ($size == 0){ return false; }else if ($size > $this->_max){ $this->_messages[] = "文件超出上傳限制大小".$this->getMaxsize(); return false; }else { return true; } } /** * 檢測上傳文件的類型 * @param mix $filename * @param mix $type */ protected function checkType($filename, $type){ if (!in_array($type, $this->_permited)){ $this->_messages[] = "該文件類型是不被允許的上傳類型"; return false; }else { return true; } } /** * 獲取文件大小 * */ public function getMaxsize(){ return number_format($this->_max / 1024, 1).'KB'; } /** * 檢測上傳錯誤 * @param mix $filename * @param int $error * */ public function checkError($filename, $error){ switch ($error){ case 0 : return true; case 1 : case 2 : $this->_messages[] = "文件過大!"; return true; case 3 : $this->_messages[] = "錯誤上傳文件!";return false; case 4 : $this->_messages[] = "沒有選擇文件!"; return false; default : $this->_messages[] = "系統(tǒng)錯誤!"; return false; } } } ?>
希望本文所述對大家的php程序設計有所幫助。
相關(guān)文章
thinkPHP5實現(xiàn)的查詢數(shù)據(jù)庫并返回json數(shù)據(jù)實例
這篇文章主要介紹了thinkPHP5實現(xiàn)的查詢數(shù)據(jù)庫并返回json數(shù)據(jù)功能,結(jié)合實例形式分析了thinkPHP5數(shù)據(jù)庫查詢及json格式數(shù)據(jù)簡單操作技巧,需要的朋友可以參考下2017-10-10PHP基于ICU擴展intl快速實現(xiàn)漢字轉(zhuǎn)拼音及按拼音首字母分組排序的方法
這篇文章主要介紹了PHP基于ICU擴展intl快速實現(xiàn)漢字轉(zhuǎn)拼音及按拼音首字母分組排序的方法,結(jié)合實例形式分析了ICU擴展intl的實現(xiàn)方法與拼音轉(zhuǎn)換、排序等相關(guān)操作技巧,需要的朋友可以參考下2017-05-05php圖像處理函數(shù)imagecopyresampled用法詳解
這篇文章主要介紹了php圖像處理函數(shù)imagecopyresampled用法,結(jié)合實例形式詳細分析了imagecopyresampled函數(shù)的功能、參數(shù)、使用方法,需要的朋友可以參考下2016-12-12centos7環(huán)境下swoole1.9的安裝與HttpServer的使用方法分析
這篇文章主要介紹了centos7環(huán)境下swoole1.9的安裝與HttpServer的使用方法,結(jié)合實例形式分析了centos7環(huán)境下swoole1.9的安裝、配置方法以及HttpServer的相關(guān)使用技巧,需要的朋友可以參考下2020-03-03PHP+Ajax實時自動檢測是否聯(lián)網(wǎng)的方法
這篇文章主要介紹了PHP+Ajax實時自動檢測是否聯(lián)網(wǎng)的方法,通過Ajax調(diào)用連接百度效果實現(xiàn)檢測網(wǎng)站是否聯(lián)網(wǎng)的功能,需要的朋友可以參考下2015-07-07