我是這樣寫的 可以就是判斷不出任何錯誤 請老師幫忙看下
<?php
/**
?* 獲取文件信息
?* @return array
?*/
function getFileInfo() {
$i = 0;
foreach ( $_FILES as $file ) {
if (is_string ( $file ['name'] )) {
$files [$i] = $file;
$i ++;
} else if (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 array $allowType ? ? ? ?
?* @param int $maxSize ? ? ? ?
?* @param string $flag ? ? ? ?
?* @param string $savePath ? ? ? ?
?* @return array
?*/
function uploadFile($fileInfo, $flag = true, $savePath = "uploads") {
$allowType = array (
'jpeg',
'jpg',
'png',
'gif'?
);
$maxSize = 1000000;
$fileType = pathinfo ( $fileInfo ['name'], PATHINFO_EXTENSION );
echo $fileInfo ['error'];
if ($fileInfo ['error'] === UPLOAD_ERR_OK) {
if ($fileInfo ['size'] > $maxSize) {
$info ['mes'] = $fileInfo ['name'] . "上傳文件過大";
}
// 判斷文件類型
$extension = pathinfo ( $fileInfo ['name'], PATHINFO_EXTENSION );
if (! in_array ( $extension, $allowType )) {
$info ['mes'] =$fileInfo ['name'] ."文件類型不合法,本站只允許上傳jpg png gif jpeg" ;
}
if (! is_uploaded_file ( $fileInfo ['tmp_name'] )) {
$info ['mes'] = $fileInfo ['name'] . "上傳文件不是通過HTTP POST方式上傳的";
}
if ($flag) {
if (! getimagesize ( $fileInfo ['tmp_name'] )) {
$info ['mes'] = $fileInfo ['name'] . "上傳文件不是真實的圖片類型";
}
}
// $savePath = "uploads";
if (! file_exists ( $savePath )) {
mkdir ( $savePath, 0777, true );
chmod ( $savePath, 0777 );
}
$newName = md5 ( uniqid ( microtime () ) ) . '.' . $fileType;
$desPath = $savePath . '/' . $newName;
if (! move_uploaded_file ( $fileInfo ['tmp_name'], $desPath )) {
$info ['mes'] = $fileInfo ['name'] . "上傳失敗";
}
$info ['mes'] = "上傳成功";
$info ['des'] = $desPath;
return $info;
} else {
switch ($fileInfo ['error']) {
case 1 :
$info ['mes'] = "上傳文件大小超出了php配置文件upload_max_filesize的值";
break;
case 2 :
$info ['mes'] = "上傳文件大小超出了HTML表單MAX_FILE_SIZE的值";
break;
case 3 :
$info ['mes'] = "文件只有部分被上傳";
break;
case 4 :
$info ['mes'] = "沒有選擇任何文件";
break;
case 6 :
$info ['mes'] = "找不到臨時文件夾";
break;
case 7 :
$info ['mes'] = "文件寫入失敗";
break;
}
return $info;
}
}
2014-12-29
我看了下 匹配錯誤那沒問題啊
沒有錯誤輸出是嗎?
^-^...
2014-12-28
輸出頁面我是這樣寫的 但是為什么判斷不到錯誤 請老師指教下 謝謝!
require_once 'upload.func.php';
foreach ( getFileInfo() as ?$fileInfo){
$info=uploadFile($fileInfo);
echo $info['mes'].'<br/>';
}