老師這個upload2跳轉doAction 不能將數組按0 1 2 3這樣顯示啊 這是怎么回事?
<!DOCTYPE?html> <html> <head> ????<meta?http-equiv="content-type"?content="text/html";?Charset="utf-8"> ????<title></title> </head> <body> <form?action="doAction3.php"?method="post"?enctype="multipart/form-data"> ????請選擇上傳文件<input?type="file"?name="myFile[]"?/><br/> ????請選擇上傳文件<input?type="file"?name="myFile[]"?/><br/> ????請選擇上傳文件<input?type="file"?name="myFile[]"?/><br/> ????請選擇上傳文件<input?type="file"?name="myFile[]"?/><br/> ????<input?type="submit"?value="上傳"?/> </form> </body> </html>
doAction3.php
<?php
// print_r($_FILES);
function buildInfo(){
? ? $i=0;
? ? foreach($_FILES as $v){
? ? ? ? //單文件
? ? ? ? if(is_string('name')){
? ? ? ? ? ? $files[$i]=$v;
? ? ? ? ? ? $i++;
? ? ? ? }else{
? ? ? ? ? ? //多文件
? ? ? ? ? ? foreach($v['name'] as $key=>$val){
? ? ? ? ? ? ? ? $files[$i]['name']=$val;
? ? ? ? ? ? ? ? $files[$i]['size']=$v['size'][$key];
? ? ? ? ? ? ? ? $files[$i]['tmp_name']=$v['tmp_name'][$key];
? ? ? ? ? ? ? ? $files[$i]['error']=$v['error'][$key];
? ? ? ? ? ? ? ? $files[$i]['type']=$v['type'][$key];
? ? ? ? ? ? ? ? $i++;
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? return $files;
}
$info=buildInfo();
print_r($info);
2016-08-17
2016-07-14
<?php?
require_once '../lib/string.func.php';
header("content-type:text/html;charset=utf-8");
//print_r($_FILES);
/**
?* 構建上傳文件信息
?* @return array
?*/
function buildInfo(){
$i=0;
foreach($_FILES as $v){
//單文件
if(is_string($v['name'])){
$files[$i]=$v;
$i++;
}else{
//多文件
foreach($v['name'] as $key=>$val){
$files[$i]['name']=$val;
$files[$i]['size']=$v['size'][$key];
$files[$i]['tmp_name']=$v['tmp_name'][$key];
$files[$i]['error']=$v['error'][$key];
$files[$i]['type']=$v['type'][$key];
$i++;
}
}
}
return $files;
}
function uploadFile($path="uploads",$allowExt=array("gif","jpeg","png","jpg","wbmp"),$maxSize=2097152,$imgFlag=true){
if(!file_exists($path)){
mkdir($path,0777,true);
}
$i=0;
$files=buildInfo();
foreach($files as $file){
if($file['error']===UPLOAD_ERR_OK){
$ext=getExt($file['name']);
//檢測文件的擴展名
if(!in_array($ext,$allowExt)){
exit("非法文件類型");
}
//校驗是否是一個真正的圖片類型
if($imgFlag){
if(!getimagesize($file['tmp_name'])){
exit("不是真正的圖片類型");
}
}
//上傳文件的大小
if($file['size']>$maxSize){
exit("上傳文件過大");
}
if(!is_uploaded_file($file['tmp_name'])){
exit("不是通過HTTP POST方式上傳上來的");
}
$filename=getUniName().".".$ext;
$destination=$path."/".$filename;
if(move_uploaded_file($file['tmp_name'],$destination)){
$file['name']=$filename;
unset($file['error'],$file['tmp_name'],$file['size'],$file['type']);
$uploadedFiles[$i]=$file;
$i++;
}
}else{
switch($file['error']){
case 1:
$mes="超過了配置文件上傳文件的大小";//UPLOAD_ERR_INI_SIZE
break;
case 2:
$mes="超過了表單設置上傳文件的大小"; //UPLOAD_ERR_FORM_SIZE
break;
case 3:
$mes="文件部分被上傳";//UPLOAD_ERR_PARTIAL
break;
case 4:
$mes="沒有文件被上傳";//UPLOAD_ERR_NO_FILE
break;
case 6:
$mes="沒有找到臨時目錄";//UPLOAD_ERR_NO_TMP_DIR
break;
case 7:
$mes="文件不可寫";//UPLOAD_ERR_CANT_WRITE;
break;
case 8:
$mes="由于PHP的擴展程序中斷了文件上傳";//UPLOAD_ERR_EXTENSION
break;
}
echo $mes;
}
}
return $uploadedFiles;
}
$fileInfo=uploadFile();
print_r($fileInfo);