Paste_Image.png
<?php
//getimagesize($filename):得到指定圖片的信息股缸,
//如果是圖片返回數(shù)組 如果不是圖片返回FALSE
$filename = 'uploads/yun.jpeg';
var_dump(getimagesize($filename));
/*
* array
0 => int 224
1 => int 224
2 => int 2
3 => string 'width="224" height="224"' (length=24)
'bits' => int 8
'channels' => int 3
'mime' => string 'image/jpeg' (length=10)
*/
?>
<html>
<head><title></title></head>
<body>
<form action="doAction.php" method="post" enctype="multipart/form-data">
請選擇您要上傳的文件:
<input type="file" name="myFile">
<input type="submit" value="上傳文件">
</form>
</body>
</html>
doAction.php
<?php
$fileInfo = $_FILES['myFile'];
$maxSize = 2097152;//2M 允許的最大值
$allowExt = array('jpeg', 'jpg', 'png', 'gif', 'wbmp');
$flag = true;//檢測是否為真實的圖片類型
//1.判斷錯誤號
if ($fileInfo['error'] == 0) {
//判斷上傳文件的大小
if ($fileInfo['size'] > $maxSize) {
exit("上傳文件過大");
}
//$ext=strtolower(end(explode('.',$fileInfo['name'])))
$ext = pathinfo($fileInfo['name'], PATHINFO_EXTENSION);
if (!in_array($ext, $allowExt)) {
exit("非法文件類型");
}
//判斷是否是通過HTTP POST文件上傳上來的
if (!is_uploaded_file($fileInfo['tmp_name'])) {
exit('文件不是通過HTTP POST 方式上傳來的');
}
//檢測是否為真實的圖片類型
if ($flag) {
if (!getimagesize($fileInfo['tmp_name'])) {
exit('不是真正的圖片類型');
}
}
$path = 'uploads';
if (!file_exists($path)) {
mkdir($path, 0777, true);
chmod($path, 0777);
}
//確保文件名唯一,防止重名產(chǎn)生覆蓋
$uniName = md5(uniqid(microtime(true), true)) . '.' . $ext;
$destination = $path . '/' . $uniName;//uploads/e8b67f2be200f625ef111b4f3352903b.jpeg
if (@move_uploaded_file($fileInfo['tmp_name'], $destination)) {
echo "文件上傳成功";
} else {
echo "文件上傳失敗";
}
} else {
switch ($fileInfo['error']) {
case 1:
echo "上傳文件超過了PHP配置文件中upload_max_file";
break;
case 2:
echo "超過了表單MAX_FILE_SIZE";
break;
case 3:
echo "文件部分被上傳";
break;
case 4:
echo "沒有選擇上傳文件";
break;
case 6:
echo "沒有找到臨時目錄";
break;
case 7:
case 8:
echo "系統(tǒng)錯誤";
break;
}
}
?>
Paste_Image.png
Paste_Image.png