PHP之上傳文件upload.php

<?php
    print_r($_FILES);
	//獲取上傳文件信息
	$upFile=$_FILES['myfile'];
	$path="uploads/";
	$typeList=array("image/jpg","image/png","text/html","application/zip"); //定義容許的類型
	if($upFile["error"]>0){
		switch ($upFile["error"]){//獲取錯誤信息
		    case 1:
				$info="上傳的文件超過了php.ini 中 upload_max_filesize 選項限制的值";
		        break;
		    case 2:
				$info="上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值";	
		        break;
		    case 3:
				$info="文件並未徹底上傳,請再次嘗試!文件只有部分被上傳";
		        break;
		    case 4:
				$info="未選擇上傳文件,沒有文件被上傳";
		        break;
			case 6:
				$info="找不到臨時文件夾";
		        break;
            case 7:			
				$info="文件寫入失敗";
		        break;
            case 8:
				$info="因爲PHP的擴展程序中斷了文件上傳";
		        break;
		}die("上傳文件錯誤,緣由:" .$info);
	}
	//過濾上傳文件大小
	if($upFile["size"]>2*1024*1024){
		die("上傳文件大小超出限制");
	}
	//過濾文件類型
	if(!in_array($upFile["type"], $typeList)){
		die("上傳文件類型非法" .$upFile["type"]);
	}
	//上傳文件後對文件名進行定義
	$fileinfo=pathinfo($upFile["name"]);//解析上傳文件名字
	do{
		$newfile=date("YmdHis").rand(1000, 9999).".".$fileinfo["extension"];
	}while(file_exists($path.$newfile));
	//判斷是不是一個上傳的文件
	if(is_uploaded_file($upFile["tmp_name"])){
		//執行文件上傳
		if(move_uploaded_file($upFile["tmp_name"], $path.$newfile)){
			echo "文件上傳成功";
		}else{
			die("上傳文件失敗");
		}
	}else{
		die("不是一個上傳文件");
	}
?>
相關文章
相關標籤/搜索