精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

PHP通用文件上傳類的具體解析

開發 后端
PHP通用文件上傳類的實質就是用到PHP組文件上傳,在具體的編寫代碼過程中,要特別注意的是name后面必須要加上[],方便我們調用層循環。

我們下面為大家具體講解PHP通用文件上傳類的具體代碼編寫,希望初學者能夠通過本文學到一些新的知識,增加自己的編程實踐經驗。由于做項目中經常遇到文件上傳,因此封裝了一個通用的文件上傳類,作用支持組文件上傳,并且不同的上傳域可以上傳不同的文件類型,不同的文件類型限制的文件大小也可能不相同。

#t#舉例來說:用戶可上傳一種展品并可為該展品上傳一張縮略圖,那么縮略圖文件限制類型可能為jpg,,gif,png等,而展品文件限制類型可能為mov,avi,mpeg等,而圖片大小可能限制為100KB,音頻視頻大小可能限制為2MB。類代碼如下:

  1. class Upload  
  2. {  
  3.     public $InputName;    // 文件上傳域控件名  
  4.       
  5.     /**    
  6.     * 允許上傳的文件類型  
  7.     * 形式為 array('image/jpeg', 'image/png', 'image/gif') 或包含此類數組的數組(與每個上傳域控件對應)  
  8.     */  
  9.     public $FileType;  
  10.       
  11.     /**    
  12.     * 最大上傳文件大?。▎挝唬篵yte)  
  13.     * 形式為 array('image' => $size, 'audio' => $size)(表示每種應用文件類型所對應的上傳大?。?nbsp;或包含此類數組的數組(與每個上傳域控件對應)或一數值(表示所有上傳文件均限制在此大小之下)  
  14.     */  
  15.     public $FileMaxSize;   
  16.       
  17.     public $FileSavePath;  // 文件保存路徑(可為數組形式,表示不同上傳域上傳文件到不同的路徑)  
  18.     public $FileSaveName;  // 文件保存名(不包含后綴名)(可為數組形式,表示不同上傳域上傳文件保存的不同名稱)  
  19.     public $NoteFileFalse; // 文件錯誤提示  
  20.     public $NoteFileType;  // 文件類型不符提示  
  21.     public $NoteFileSize;  // 文件大小超出提示  
  22.       
  23.     /* 上傳文件并返回文件名信息(包含后綴名) */  
  24.     public function UploadFile()  
  25.     {  
  26.         $this->CheckFile(); // 檢驗文件  
  27.         $file = $_FILES[$this->InputName];  
  28.         $file_save_full_name = array(); // 文件保存名(包含后綴名)  
  29.           
  30.         foreach ($file['name'] as $key => $name)  
  31.         {  
  32.             if (!empty($name)) // 文件不為空  
  33.             {  
  34.                 /* 確定文件保存路徑 */  
  35.                 if (is_array($this->FileSavePath))  
  36.                 {  
  37.                     $file_save_path = $this->FileSavePath[$key];  
  38.                 }  
  39.                 else   
  40.                 {  
  41.                     $file_save_path = $this->FileSavePath;  
  42.                 }  
  43.                   
  44.                 /* 確定文件保存名(不包含后綴名) */  
  45.                 if (is_array($this->FileSaveName))  
  46.                 {  
  47.                     $file_save_name = $this->FileSaveName[$key];  
  48.                 }  
  49.                 else   
  50.                 {  
  51.                     $file_save_name = $this->FileSaveName;  
  52.                 }  
  53.                   
  54.                 /* 開始保存 */  
  55.                 $this->CreatePath($file_save_path); // 如果路徑不存在則創建路徑  
  56.                 move_uploaded_file($file["tmp_name"][$key], $file_save_path . $file_save_name . $this->GetSuffix($file['name'][$key]));  
  57.                 $file_save_full_name[] = $file_save_name . $this->GetSuffix($file['name'][$key]);  
  58.             }  
  59.             else   
  60.             {  
  61.                 $file_save_full_name[] = null;  
  62.             }  
  63.         }  
  64.           
  65.         unlink($file);  
  66.           
  67.         /* 如果只有一個文件,則返回單個文件名 */  
  68.         if (count($file_save_full_name) == 1)  
  69.         {  
  70.             $file_save_full_name = $file_save_full_name[0];  
  71.         }  
  72.           
  73.         return $file_save_full_name;  
  74.     }  
  75.       
  76.     /* 檢驗文件 */  
  77.     private function CheckFile()  
  78.     {  
  79.         $file = $_FILES[$this->InputName];  
  80.           
  81.         foreach ($file['name'] as $key => $name)  
  82.         {  
  83.             if (!empty($name)) // 文件不為空  
  84.             {  
  85.                 $type  = $file['type'][$key];  
  86.                 $size  = $file['size'][$key];  
  87.                 $error = $file['error'][$key];  
  88.                   
  89.                 /* 確定允許上傳文件類型列表 */  
  90.                 if (is_array($this->FileType[0]))  
  91.                 {  
  92.                     $file_type = $this->FileType[$key];  
  93.                 }  
  94.                 else   
  95.                 {  
  96.                     $file_type = $this->FileType;  
  97.                 }  
  98.                   
  99.                 /* 確定最大上傳文件大小 */  
  100.                 if (is_array($this->FileMaxSize))  
  101.                 {  
  102.                     $file_max_size_key = explode('/', $type);  
  103.                     $file_max_size_key = $file_max_size_key[0];  
  104.                     if (is_array($this->FileMaxSize[0]))  
  105.                     {  
  106.                         $file_max_size = $this->FileMaxSize[$key][$file_max_size_key];  
  107.                     }  
  108.                     else   
  109.                     {  
  110.                         $file_max_size = $this->FileMaxSize[$file_max_size_key];  
  111.                     }  
  112.                 }  
  113.                 else   
  114.                 {  
  115.                     $file_max_size = $this->FileMaxSize;  
  116.                 }  
  117.                   
  118.                 /* 文件錯誤 */  
  119.                 if ($error > 0)  
  120.                 {  
  121.                     die($name . $this->NoteFileFalse);  
  122.                 }  
  123.                   
  124.                 /* 文件大小超過最大上傳文件大小 */  
  125.                 if ((!is_null($file_max_size) && $size > $file_max_size) || ($size == 0))  
  126.                 {  
  127.                     die($name . $this->NoteFileSize);  
  128.                 }  
  129.  
  130.                     /* 文件類型不符 */  
  131.                 if (!in_array($type, $file_type))  
  132.                 {  
  133.                     die($name . $this->NoteFileType);  
  134.                 }  
  135.             }  
  136.         }  
  137.     }  
  138.       
  139.     /* 獲取文件后綴名 */  
  140.     private function GetSuffix($fileName)  
  141.     {  
  142.         return substr($fileName, strrpos($fileName, "."));  
  143.     }  
  144.  
  145.     /* 如果路徑不存在則創建路徑 */  
  146.     private function CreatePath($filePath)  
  147.     {  
  148.         if (!file_exists($filePath))  
  149.         {  
  150.             mkdir($filePath);  
  151.         }  
  152.     }  

PHP通用文件上傳類的使用方法:接著以本文開頭所舉例子來說明該類的調用方法(呵呵,調用是很方便的):

$upload_obj = new Upload(); // 文件上傳對象

$upload_obj->InputName = 'upload_test'; // 文件上傳域控件名

$upload_obj->FileType = array(array('image/jpeg', 'image/png'), array('audio/mpeg', 'video/x-msvideo')); // 允許上傳的文件類型

$upload_obj->FileMaxSize = array('image' => 100 * 1024, 'audio' => 2 * 1024 * 1024, 'video' => 2 * 1024 * 1024);

$upload_obj->FileSavePath = array('upload/files/s/', 'upload/files/z/');

$upload_obj->FileSaveName = time();

$upload_obj->NoteFileFalse = '文件錯誤';

$upload_obj->NoteFileType  = '文件類型不符';

$upload_obj->NoteFileSize  = '文件大小超出';

$file_save_full_name = $upload_obj->UploadFile(); // 上傳并獲取文件全名(基本名加擴展名)(如果是多個文件則為數組形式)(全名用于在數據庫中存儲信息)

總結:就此可輕松實現若干文件上傳,其實PHP通用文件上傳類歸根結底用到了PHP組文件上傳,要注意的就是控件名的name后別忘了加上[],這樣的好處就是遇到多個文件上傳時就不用在調用層進行循環或一個一個處理上傳了,我們的應用也因此而輕松。

責任編輯:曹凱 來源: CSDN
相關推薦

2009-11-24 15:50:09

PHP上傳類uploa

2009-11-24 14:52:45

PHP動態多文件上傳

2009-12-04 17:06:47

PHP讀取Excel文

2009-11-24 15:23:50

PHP文件上傳進度條

2009-11-27 15:31:33

PHP類搜索定位目錄樹

2009-11-24 14:32:03

PHP限制上傳文件大小

2009-11-24 14:45:08

PHP批量上傳圖片

2009-12-01 19:08:18

PHP外部變量

2009-11-30 16:08:32

PHP addslas

2009-11-16 14:09:30

PHP上傳類

2009-11-24 14:22:03

基于PHP的AJAX技

2009-12-02 18:51:12

PHP分頁類

2009-11-25 15:26:03

PHP中反饋表單

2009-11-25 10:02:27

PHP會話Sessio

2009-11-25 14:00:37

PHP函數asort(

2009-12-08 17:29:26

PHP extends

2009-11-25 17:14:45

PHP安裝為Apach

2009-05-18 10:23:43

文件上傳PHPFILE函數

2009-11-16 09:35:42

PHP上傳

2009-11-16 11:41:19

PHP上傳大文件
點贊
收藏

51CTO技術棧公眾號

久久久www成人免费精品张筱雨| 亚洲男同1069视频| 日韩av日韩在线观看| 少妇真人直播免费视频| 国产1区2区3区4区| 日韩精品视频一区二区三区| 国产精品视频观看| 92看片淫黄大片欧美看国产片| www.av成人| 欧美一级片网址| 亚洲444eee在线观看| 久久伊人一区二区| 亚洲天堂国产精品| 国模一区二区三区| 日韩精品欧美国产精品忘忧草| 国产极品美女高潮无套久久久| 国产区视频在线| 久久成人免费| 综合欧美国产视频二区| 日本亚洲一区二区三区| 男人天堂视频在线观看| 国产欧美日韩另类一区| 91在线视频九色| 日韩欧美中文视频| 97超碰在线免费| 国产欧美一区二区在线观看| 成人黄色在线播放| 日韩精品视频网址| 大桥未久在线视频| 久久免费的精品国产v∧| 成人黄色av网站| 日韩伦人妻无码| 亚洲91中文字幕无线码三区| 日韩av影院在线观看| 亚洲人视频在线| 蜜桃视频在线观看网站| 国产乱子伦一区二区三区国色天香| x99av成人免费| 一卡二卡三卡四卡| 亚洲日本一区二区三区在线| 日本丶国产丶欧美色综合| 欧美另类videos| 黄色软件在线观看| 成人福利视频网站| 成人黄色免费网站在线观看| 97久久久久久久| 亚洲精品一区二区在线看| 日韩国产在线播放| 18禁一区二区三区| 9.1麻豆精品| 欧美在线观看一区| 一本大道熟女人妻中文字幕在线| 真实新婚偷拍xxxxx| 国一区二区在线观看| 最近中文字幕mv在线一区二区三区四区 | 欧美黑人国产人伦爽爽爽| 欧美黄色激情视频| 婷婷综合一区| 精品电影一区二区| 久久精品中文字幕一区二区三区 | 欧美酷刑日本凌虐凌虐| 亚洲精品视频导航| 久久久一本精品| 精品电影在线观看| 波多野结衣激情| 三区四区电影在线观看| 国产精品欧美经典| 午夜精品视频在线观看一区二区| 精品电影在线| 国产日韩欧美在线一区| 欧美日韩精品一区| 免费在线黄色网址| 久久婷婷久久一区二区三区| 国产伦理久久久| 十八禁一区二区三区| 成人不卡免费av| 精品亚洲一区二区三区四区五区高| 亚洲高清精品视频| 不卡一区在线观看| 九九九九九精品| 天堂资源中文在线| 本田岬高潮一区二区三区| 国产精品一区二区三区不卡| 亚洲精品字幕在线观看| 国产成人在线观看免费网站| 999国产在线| 日韩在线视频观看免费| www.欧美亚洲| 久久综合九色综合网站| 五月天婷婷在线观看| 成人美女在线视频| 欧美极品jizzhd欧美| www.亚洲.com| 国产欧美日韩久久| 特级西西444www大精品视频| 国产一二三区在线观看| 亚洲综合区在线| 日本少妇高潮喷水视频| 三级成人在线| 欧美日韩三级视频| 久久精品一卡二卡| 免费观看成人www动漫视频| 亚洲天堂网在线观看| 在哪里可以看毛片| 91精品精品| 久久艳片www.17c.com | 一区中文字幕在线观看| 男插女视频久久久| 一本一道久久a久久精品综合蜜臀| 白嫩少妇丰满一区二区| 二吊插入一穴一区二区| 91精品国产手机| 精品人妻一区二区免费视频| 国产免费av一区二区三区| 一本一本久久a久久精品牛牛影视 一本色道久久综合亚洲精品小说 一本色道久久综合狠狠躁篇怎么玩 | 性欧美69xoxoxoxo| 91国产精品电影| 中文字幕视频免费观看| 国产精品一区二区男女羞羞无遮挡| 91日韩久久| 国产乱理伦片a级在线观看| 一区二区视频免费在线观看| www.玖玖玖| 伊人久久大香| 亚洲男人天堂手机在线| 丰满少妇高潮久久三区| 日韩电影免费在线观看网站| http;//www.99re视频| 久热av在线| 亚洲欧洲日本在线| 国产主播在线看| 午夜视频在线观看精品中文| 国产亚洲精品日韩| 日韩精品国产一区二区| 国产最新精品免费| 欧美日韩电影一区二区三区| 污污视频在线看| 色综合天天综合色综合av| 欧美熟妇另类久久久久久多毛| 精品久久久亚洲| 国内精品久久久久久中文字幕| 97人妻精品一区二区三区软件| 成人高清免费观看| 亚洲最新免费视频| 久久uomeier| 日韩av在线导航| 免费一级特黄特色大片| 国产乱淫av一区二区三区 | 国产精品网站免费| 免费观看亚洲视频大全| 久久精品国产91精品亚洲| jizz国产在线| 成人av资源在线观看| 成年丰满熟妇午夜免费视频| 不卡av影片| 亚洲精品中文字幕av| 成人精品在线看| 菠萝蜜视频在线观看一区| 全黄性性激高免费视频| 四虎影视成人精品国库在线观看 | 精品久久久无码中文字幕| 久久天堂av综合合色蜜桃网| www.爱色av.com| 国产一区二区三区亚洲| 久久久久久久成人| 亚洲精品一级片| 亚洲成人免费影院| 亚洲男女在线观看| 国产精品www994| 成人动漫在线视频| 91美女精品| 日韩电影免费观看在线观看| 精品少妇一二三区| caoporen国产精品视频| 国产二区视频在线| 粉嫩久久久久久久极品| 九九热精品视频国产| www.色日本| 亚洲线精品一区二区三区 | 欧美日韩精品区| 91丨porny丨中文| 日韩av片在线看| 亚洲国产国产| 国产精品免费观看在线| 日本激情视频在线观看| 欧美一区二区三区思思人| 麻豆亚洲av成人无码久久精品| 久久97超碰国产精品超碰| 久久久www免费人成黑人精品| 345成人影院| 色av中文字幕一区| 国产成人三级在线播放 | 国产一级生活片| av亚洲精华国产精华精华| 日本a在线免费观看| 欧美调教网站| 国产剧情久久久久久| 4438x成人网全国最大| 亚洲第一精品夜夜躁人人爽| 国产视频1区2区| 综合色天天鬼久久鬼色| 久久久久亚洲av无码麻豆| 99综合在线| 欧美 日韩 国产 在线观看| 国产成人精品福利| 欧美综合在线第二页| 欧美成人xxx| 亚洲国产精品小视频| 一区二区的视频| 五月婷婷色综合| 国产黄a三级三级| 国产电影精品久久禁18| 国产a级片免费观看| 欧美在线三区| 欧美一区二区三区精美影视| 麻豆国产一区| 久久理论片午夜琪琪电影网| 天天综合网在线| 欧美日韩国产成人在线免费| 久久精品免费在线| 国产精品久久一卡二卡| avtt香蕉久久| 九九国产精品视频| 少妇高潮喷水在线观看| 欧美一区影院| 亚州欧美一区三区三区在线| 国产香蕉精品| 91久久久一线二线三线品牌| 国产私拍福利精品视频二区| 久久不射电影网| 蜜桃免费在线| 亚洲国产天堂久久综合| 国产情侣在线播放| 欧美性色黄大片| 中文字幕亚洲精品一区| 亚洲精品久久嫩草网站秘色| 久久精品国产亚洲av久| 国产一区二区三区国产| 日本人视频jizz页码69| 天使萌一区二区三区免费观看| 欧美黄色免费网址| 希岛爱理一区二区三区| 亚洲欧洲国产日韩精品| 国产精品三p一区二区| 7777kkkk成人观看| 国产美女一区视频| 欧美精品日韩三级| 很黄的网站在线观看| 日韩av在线直播| www.av网站| 欧美一区二区成人| 欧美成人一区二区三区四区| 懂色av影视一区二区三区| 538在线视频观看| 亚洲理论在线| 成人免费网站入口| 好吊日精品视频| 神马午夜伦理影院| 久久久久免费av| 欧美午夜精品久久久久免费视| 欧美黄色录像| 精品一区二区国产| 欧美变态网站| 久热这里只精品99re8久| 国产色噜噜噜91在线精品| 国外成人在线视频网站| 97久久亚洲| 国产日产精品一区二区三区四区 | 欧美婷婷在线| 真实国产乱子伦对白视频| 国产精品久久久久久| 强开小嫩苞一区二区三区网站| 欧美电影《轻佻寡妇》| 一本一生久久a久久精品综合蜜| 全球成人免费直播| 一区二区冒白浆视频| 亚洲品质自拍| 久久久久国产精品视频| 国产一区二区三区电影在线观看 | 欧美久久精品| 日本在线观看不卡| 99久久夜色精品国产亚洲96 | 精品国产一区二区三区噜噜噜 | 日韩精品无码一区二区| 欧美日韩免费在线| 国产情侣小视频| 欧美一区二区观看视频| 无套内谢的新婚少妇国语播放| 日韩午夜精品电影| 国产不卡av在线播放| 精品国产一区二区在线观看| 香蕉视频911| 色播久久人人爽人人爽人人片视av| h片在线免费| 久久久欧美精品| 黄色成人在线观看网站| 官网99热精品| 欧美视频网址| 日韩美女爱爱视频| 亚洲视频www| 日本一区二区三区在线免费观看| jlzzjlzz国产精品久久| 女人黄色一级片| 一区二区在线观看免费| 欧美男人亚洲天堂| 日韩一级欧美一级| 自拍视频在线网| 97视频免费观看| 深夜日韩欧美| 欧美日本亚洲| 午夜欧美精品| 91插插插插插插插插| 成人国产免费视频| 欧美性生给视频| 欧美日韩中文在线观看| a在线观看免费| 亚洲精品日韩欧美| av剧情在线观看| 国产日韩欧美在线播放| 欧美一性一交| 伊人再见免费在线观看高清版| 久久午夜精品| 亚洲色图欧美自拍| 国产精品久久久久久一区二区三区 | 亚洲一级特黄毛片| 亚洲男女自偷自拍图片另类| av中文字幕在线| 日韩av色综合| 欧美91在线| 少妇人妻大乳在线视频| 国产一区二区91| 少妇视频在线播放| 欧美三级电影精品| 美国成人毛片| 91av在线视频观看| 国产精品一区二区中文字幕| 中文字幕乱码一区二区三区| 激情欧美丁香| 69亚洲乱人伦| 亚洲影视在线播放| 国产同性人妖ts口直男| 最近2019中文字幕mv免费看| 免费在线小视频| 欧美激情视频一区二区三区| 最新亚洲一区| 日本三级日本三级日本三级极| 亚洲欧美国产77777| 一本色道久久综合精品婷婷 | 女人被狂躁c到高潮| 亚洲综合男人的天堂| 空姐吹箫视频大全| 欧美国产一区二区三区| 久久伊人影院| 日本一区二区三区四区五区六区| 麻豆精品久久久| 日韩精品一区二区亚洲av性色| 欧美日韩免费不卡视频一区二区三区| 国产中文在线观看| 国产国语videosex另类| 狠狠综合久久av一区二区蜜桃| 久久久久久久久久久免费视频| 蜜臀a∨国产成人精品| 黄色录像免费观看| 在线不卡欧美精品一区二区三区| 在线观看麻豆| 成人黄色av网站| 综合天堂av久久久久久久| 午夜免费福利影院| 欧美日韩国产精品一区| 日本韩国在线观看| 国产精品国产三级国产专播精品人| 欧美美女一区| 污视频网址在线观看| 亚洲欧美日韩在线不卡| 在线播放成人av| 欧美国产乱视频| 国产图片一区| 日韩欧美xxxx| 亚洲丝袜自拍清纯另类| 性做久久久久久久| 国产91精品高潮白浆喷水| 五月国产精品| 青青草原成人网| 久久久三级国产网站| 国产午夜无码视频在线观看| 日韩中文字幕在线看| av动漫精品一区二区| 成年人免费在线播放| 国产精品美女久久久久高潮| 99热这里只有精品1| 性欧美激情精品| 久久夜色精品国产噜噜av小说| 欧美日韩亚洲自拍| 一区二区三区**美女毛片| 涩爱av在线播放一区二区| 国产精品免费网站| 韩国在线一区| 极品久久久久久久| 亚洲精品一区二区三区福利 | 国产91精品久久久|