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

首頁 > 語言 > PHP > 正文

PHP實現上傳多文件示例代碼

2024-05-04 23:55:20
字體:
來源:轉載
供稿:網友

上傳多文件

1.在對多文件信息進行操作前,需要構建文件信息,通過buildInfo函數將三維數組轉換成便于文件操作的二維數組。

function buildInfo(){  $i = 0;  foreach ($_FILES as $v){    //判斷是否是單文件    if(is_string($v['name'])){      $files[$i] = $v;      $i++;    }else{      //多文件      foreach ($v['name'] as $key => $value){        $files[$i]['name'] = $value;        $files[$i]['size'] = $v['size'][$key];        $files[$i]['tmp_name'] = $v['tmp_name'][$key];        $files[$i]['type'] = $v['type'][$key];        $files[$i]['error'] = $v['error'][$key];        $i++;      }    }  }  return $files;}

單文件和多文件的判斷在于文件數組的類型,單文件(二維數組)、多文件(三維數組)。

2.文件上傳函數及參數

 

復制代碼 代碼如下:

function uploadFiles($path = "uploads",  $allowExt = array("jpg", "gif", "png", "wbmp"), $maxSize = 1048576, $imgFlag = true)

 

path,保存目錄。allowExt,允許擴展名數組。maxSize最大上傳文件大小。imgFlag,圖片文件標識符。

3.判斷保存文件的目錄是否存在

if(!file_exists($path)){    mkdir($path, 0777, true);  }

4.傳入構建好的文件信息,保存到files

$i = 0;$files = buildInfo();

5.判斷文件的error類型

foreach ($files as $file){    if($file['error'] == UPLOAD_ERR_OK){}else{    switch ($file['error']){      case 1:        $mes = "超過配置文件上傳文件大小";        break;      case 2:        $mes = "超過了表單設置";        break;      case 3:        $mes = "文件部分被上傳";        break;      case 4:        $mes = "沒有文件上傳";        break;      case 6:        $mes = "沒找到臨時目錄";        break;      case 7:        $mes = "文件不可寫";        break;      case 8:        $mes = "由于PHP的擴展程序中斷了文件上傳";        break;    }

6.限制文件類型

if($file['error'] == UPLOAD_ERR_OK){      $ext = getExt($file['name']);      if(!in_array($ext, $allowExt)){        exit("非法文件類型");      }

7.限制是否為真的圖片類型

if($imgFlag){        if(!getimagesize($file['tmp_name'])){          exit("不是真的圖片類型");        }      }

8.判斷文件大小

if($file['size'] > $maxSize){        exit("文件過大");      }

9.判斷文件是否通過post上傳

if(!is_uploaded_file($file[‘tmp_name'])){ exit(“文件不是通過HTTP POST上傳”); }

10.重命名文件(唯一且不重復)并保存到目標目錄

$filename = getUniName().".".$ext;$destination = $path."/".$filename;if(move_uploaded_file($file['tmp_name'], $destination)){        $mes = "文件上傳成功";        $file['name'] = $filename;        unset($file['error'], $file['tmp_name']);        $uploadedFiles[$i] = $file;        $i++;      }

重寫文件信息數組中的name,刪除變量file[‘error']和file[‘tmp_name']。最后將成功上傳的文件保存到uploadedFiles數組中。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 新源县| 甘洛县| 诏安县| 凌海市| 滦平县| 广德县| 合水县| 搜索| 深圳市| 南通市| 喜德县| 锦州市| 石景山区| 沅江市| 娱乐| 临城县| 宝鸡市| 昭平县| 兴国县| 泗洪县| 吉木萨尔县| 恩平市| 德令哈市| 绥德县| 乌拉特中旗| 江津市| 五原县| 蕉岭县| 台南市| 新闻| 纳雍县| 新蔡县| 敖汉旗| 循化| 富川| 舒城县| 界首市| 钟山县| 兴海县| 留坝县| 昭通市|