国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP-實現多文件上傳

2019-11-11 02:44:40
字體:
來源:轉載
供稿:網友

以下是自己練習php文件上傳時的代碼,僅供參考學習

upload.php

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>多文件上傳</title></head><body> <form action="doAction2.php" method="post" enctype="multdoAction.php

<?php //
common.func.php

<?php/** * 得到文件擴展名 */ function getExt($filename){ return strtolower(pathinfo($filename,PATHINFO_EXTENSION)); }/** * 得到唯一的文件名 */ function getUniqname(){ return
md5(uniqid(microtime(true),true)); }

upload.func.php

<?php/** * 構建上傳文件的信息 */function getFiles(){ //多文件時,獲得的數據是個三維數組,需要拆分才一一對應的數據 $i=0; foreach($_FILES as $file){ //判斷是不是多文件,還是二維數組 if(is_string($file['name'])){ $files[$i] = $file; $i++; }elseif(is_array($file['name'])){ foreach ($file['name'] as $key => $value) { $files[$i]['name'] = $file['name'][$key]; $files[$i]['type'] = $file['type'][$key]; $files[$i]['tmp_name'] = $file['tmp_name'][$key]; $files[$i]['error'] = $file['error'][$key]; $files[$i]['size'] = $file['size'][$key]; $i++; } } } return $files;}/** * 針對于單文件、多個單文件、多文件的上傳 * @param array $fileInfo * @param string $path * @param string $flag * @param number $maxSize * @param array $allowExt * @return string */function uploadFile($fileInfo,$path='./uploads',$flag=true,$maxSize=2097152,$allowExt=array('jpg','jpeg','gif','png')){ /*$allowExt = array('jpg','jpeg','gif','png'); $flag = true; $maxSize = 2097152; //自定義2M*/ //判斷錯誤號 if($fileInfo['error']===0){ //檢測上傳文件大小 if($fileInfo['size']>$maxSize){ $res['mes'] = $fileInfo['name'].'上傳文件過大'; } //檢測上傳文件的類型 $ext = getExt($fileInfo['name']); if(!in_array($ext,$allowExt)){ $res['mes'] = $fileInfo['name'].'非法文件類型'; } //檢測是否是真實的圖片類型 if($flag){ if(!getimagesize($fileInfo['tmp_name'])){ $res['mes'] = $fileInfo['name'].'不是真實的圖片類型'; } } //檢測是否從HTTP POST表單上傳 if(!is_uploaded_file($fileInfo['tmp_name'])){ $res['mes'] = $fileInfo['name'].'文件不是通過POST方式上傳的'; } if(!empty($res)){ return $res; } //開始移動臨時文件到指定的文件位置 /*$path = './uploads';*/ if(!file_exists($path)){ mkdir($path,0777,true); chmod($path,0777); } $uniqName = getUniqname(); $destination = $path.'/'.$uniqName.'.'.$ext; if(!move_uploaded_file($fileInfo['tmp_name'],$destination)){ $res['mes'] = $fileInfo['name'].'文件移動失敗'; } $res['mes']=$fileInfo['name'].'上傳成功'; $res['dest']=$destination; return $res; }else{ //匹配錯誤信息 switch ($fileInfo['error']) { case 1: $res['mes'] = '上傳的文件超過了服務端配置中upload_max_filesize選項限制的值'; break; case 2: $res['mes'] = '上傳的文件超過了HTML表單POST中MAX_FILE_SIZE選項限制的值'; break; case 3: $res['mes'] = '文件只有部分被上傳'; break; case 4: $res['mes'] = '沒有文件被上傳'; break; case 6: $res['mes'] = '找不到臨時的文件夾'; break; case 7: case 8: $res['mes'] = '系統文件錯誤'; break; } return $res; }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岳普湖县| 安达市| 海丰县| 宜州市| 德州市| 凤庆县| 新干县| 永胜县| 麻阳| 韶山市| 即墨市| 聂荣县| 当雄县| 新巴尔虎左旗| 子洲县| 海林市| 霍邱县| 紫云| 民丰县| 灵寿县| 仁布县| 嘉祥县| 兴隆县| 响水县| 瓮安县| 河津市| 普陀区| 普宁市| 什邡市| 阳新县| 蒙城县| 福建省| 云梦县| 南平市| 历史| 边坝县| 望奎县| 盖州市| 新沂市| 大渡口区| 五大连池市|