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

首頁 > 編程 > PHP > 正文

PHP-實現多文件上傳

2019-11-11 02:13:07
字體:
來源:轉載
供稿:網友

以下是自己練習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; }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桂东县| 民县| 扶沟县| 湘乡市| 三都| 阿瓦提县| 汾西县| 大洼县| 奉新县| 德惠市| 前郭尔| 大竹县| 灵璧县| 阿拉善右旗| 治县。| 孟津县| 双鸭山市| 镇原县| 吉安市| 民丰县| 黑河市| 南皮县| 富平县| 天气| 阳原县| 吉安县| 农安县| 江阴市| 浦东新区| 吕梁市| 台湾省| 印江| 鲁山县| 潞城市| 托里县| 浦江县| 江达县| 库伦旗| 绥棱县| 佳木斯市| 青州市|