php實(shí)現(xiàn)常用文件上傳類的示例
廢話不多說,直接上代碼:
<?php /** * 上傳文件類 * @param _path : 服務(wù)器文件存放路徑 * @param _allowType : 允許上傳的文件類型和所對(duì)應(yīng)的MIME * @param _file : 上傳的文件信息 */ class Upload{ private $_path; private $_allowType; private $_file; /** * 構(gòu)造函數(shù) * @param string : 服務(wù)器上存放上傳文件的路徑 */ function __construct( $path = '' ) { $this->_path = $path; $this->_allowType = array( // images 'bmp' => 'image/x-ms-bmp', 'jpg' => 'image/jpeg', 'jpeg' => 'image/jpeg', 'gif' => 'image/gif', 'png' => 'image/png', 'tif' => 'image/tiff', 'tiff' => 'image/tiff', 'tga' => 'image/x-targa', 'psd' => 'image/vnd.adobe.photoshop', //文本 'txt' => 'text/plain', 'php' => 'text/x-php', 'html' => 'text/html', 'htm' => 'text/html', 'js' => 'text/javascript', 'css' => 'text/css', 'rtf' => 'text/rtf', 'rtfd' => 'text/rtfd', 'py' => 'text/x-python', 'java' => 'text/x-java-source', 'rb' => 'text/x-ruby', 'sh' => 'text/x-shellscript', 'pl' => 'text/x-perl', 'sql' => 'text/x-sql', //應(yīng)用 'exe' => 'application/octet-stream', 'doc' => 'application/vnd.ms-word', 'docx' => 'application/vnd.ms-word', 'xls' => 'application/vnd.ms-excel', 'ppt' => 'application/vnd.ms-powerpoint', 'pps' => 'application/vnd.ms-powerpoint', 'pdf' => 'application/pdf', 'xml' => 'application/xml', //音頻 'mp3' => 'audio/mpeg', 'mid' => 'audio/midi', 'ogg' => 'audio/ogg', 'mp4a' => 'audio/mp4', 'wav' => 'audio/wav', 'wma' => 'audio/x-ms-wma', //視頻 'avi' => 'video/x-msvideo', 'dv' => 'video/x-dv', 'mp4' => 'video/mp4', 'mpeg' => 'video/mpeg', 'mpg' => 'video/mpeg', 'mov' => 'video/quicktime', 'wm' => 'video/x-ms-wmv', 'flv' => 'video/x-flv', 'mkv' => 'video/x-matroska' ); } /** * 上傳函數(shù) * @param string : 表單元素的name 值 * @return [type] */ public function upload( $txtName = '' ) { $this->_file = $_FILES[$txtName]; if( $this->_file['error'] == 0){ $fileType = end( explode('.', $this->_file['name'] )); $allowType = array(); foreach( $this->_allowType as $item=>$value ){ $allowType[] = $item; } if( !in_array($fileType, $allowType)){ die('上傳的文件格式不正確!'); }else{ if(move_uploaded_file($this->file['tmp_name'], ($this->path).$this->file['name'])) { echo "<script>alert('上傳成功!')</script>"; } else { echo "<script>alert('上傳失敗!');</script>"; } } }else{ //沒有正確上傳 switch ($this->file['error']){ case 1: die('文件大小超過系統(tǒng)限制。'); break; case 2: die('文件大小超過預(yù)定義限制。'); break; case 3: die('文件為完全上傳。'); break; case 4: die('未上傳任何文件。'); break; default: die('上傳出錯(cuò)'); break; } } } //end upload }
以上這篇php實(shí)現(xiàn)常用文件上傳類的示例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
php實(shí)現(xiàn)水仙花數(shù)的4個(gè)示例分享
水仙花數(shù)是指一個(gè) n 位數(shù) ( n≥3 ),它的每個(gè)位上的數(shù)字的 n 次冪之和等于它本身。(例如:1^3 + 3^3+ 5^3 = 153)這篇文章主要介紹了php實(shí)現(xiàn)水仙花數(shù)的4個(gè)示例分享,需要的朋友可以參考下2014-04-04一個(gè)顯示效果非常不錯(cuò)的PHP錯(cuò)誤、異常處理類
這篇文章主要介紹了一個(gè)顯示效果非常不錯(cuò)的PHP錯(cuò)誤、異常處理類,代碼思路清晰,功能強(qiáng)大,需要的朋友可以參考下2014-03-03Django 標(biāo)簽篩選的實(shí)現(xiàn)代碼(一對(duì)多、多對(duì)多)
這篇文章主要介紹了Django 標(biāo)簽篩選的實(shí)現(xiàn)代碼(一對(duì)多、多對(duì)多),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09PHP中通過getopt解析GNU C風(fēng)格命令行選項(xiàng)
這篇文章主要介紹了PHP中通過getopt解析GNU C風(fēng)格命令行選項(xiàng),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11PHP面向?qū)ο笾I(lǐng)域模型+數(shù)據(jù)映射器實(shí)例(分析)
下面小編就為大家?guī)硪黄狿HP面向?qū)ο笾I(lǐng)域模型+數(shù)據(jù)映射器實(shí)例(分析)。小編覺得挺不錯(cuò)的?,F(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06

Yii2中設(shè)置與獲取別名的函數(shù)(setAlias和getAlias)用法分析