文件上傳封裝
<?php
include 'uploadone.php';
header("Content-type: text/html; charset=utf-8");
//封裝獲取文件名后綴
function getExt($fileName){
return strtolower(pathinfo($fileName,PATHINFO_EXTENSION));
}
//獲取唯一文件名
function getUniname(){
return md5(uniqid(microtime(true),true));
}
//處理多文件上傳數(shù)據(jù)
function getFiles(){
$i=0;
foreach ($_FILES as $file){
if(is_string($file['name'])){
$files[$i]=$file;
$i++;
}elseif (is_array($file['name'])){
//循環(huán)把沒一項的值拿出來合并
foreach ($file['name'] as $key=>$val){
$files[$i]['name']=$file['name'][$key];
$files[$i]['tmp_name']=$file['tmp_name'][$key];
$files[$i]['error']=$file['error'][$key];
$files[$i]['size']=$file['size'][$key];
$i++;
}
}
}
return $files;
}
function uploadFile($fileInfo,$path='uploads',$maxSize=1048576,$allowExt=array('jpg','jpeg','png','gif'),$flag=true){
if($fileInfo['error']===0){
//獲取文件名后綴
$ext=getExt($fileInfo['name']);
//檢測上傳文件大小
if($fileInfo['size']>$maxSize) $res['msg']=$fileInfo['name'].'上傳文件過大';
//檢測允許上傳文件的類型
if(!in_array($ext,$allowExt)) $res['msg']=$fileInfo['name'].'文件上傳類型錯誤!!';
//檢測是否是圖片
//$flag=true;
if($flag){
if(@!getimagesize($fileInfo['tmp_name'])){
//var_dump(getimagesize($fileInfo['tmp_name']));
$res['msg']=$fileInfo['name'].'不是圖片類型';
}
}
//檢測文件是否是通過HTTP POST上傳的
//is_uploaded_file — 判斷文件是否是通過 HTTP POST 上傳的
if(!is_uploaded_file($fileInfo['tmp_name'])) $res['msg']='文件不是通過HTTP POST上傳的';
if(isset($res)) return $res;
$uniName=getUniname();
$path='./uploads';
if(!file_exists($path)){
mkdir($path,0777,true);
chomd($path,0777);
}
$destination=$path.'/'.$uniName.'.'.$ext;
if(!move_uploaded_file($fileInfo['tmp_name'],$destination)){
$res['msg']=$fileInfo['name'].'文件移動失敗';
}
$res['msg']=$fileInfo['name'].'文件上傳成功';
$res['dest']=$destination;
return $res;
}else{
switch($fileInfo['error']){
case 1:
$res['msg']='上傳的文件超過PHP upload_max_fizesize的值';
break;
case 2:
$res['msg']='超過表單MAX_FIZE_SIZE限制大小';
break;
case 3:
$res['msg']= '文件部分被上傳';
break;
case 4:
$res['msg']= '沒有選擇上傳文件';
break;
case 6:
$res['msg']= '沒有找到臨時目錄';
break;
case 7:
case 8:
$res['msg']= '系統(tǒng)錯誤';
break;
}
return $res;
}
}