優(yōu)化后的單文件上傳函數(shù)

$fileInfo = @$_FILES ['myFile'];//接收表單上傳的文件
//5個參數(shù)中,第一個是必須,后面都有默認值
upload($fileInfo,"626800",false,"imgs",array("txt"));

function upload($fileInfo,$maxSize=2097152,$flag=true,$path="upload",$allowedExt=array("jpeg","jpg","png","gif")) {
	//$maxSize = 2 * 1024 * 1024; // 上傳文件大小限制在2M內(nèi)
	//$flag = true;	
	// 判斷錯誤號
	if ($fileInfo ['error'] > 0) {
		switch ($fileInfo ['error']) {
			case 1 :
				$mes = '上傳文件超過了PHP配置文件中upload_max_filesize選項的值';
				break;
			case 2 :
				$mes = '上傳文件超過了表單MAX_FILE_SIZE限制的大小';
				break;
			case 3 :
				$mes = '文件部分被上傳';
				break;
			case 4 :
				$mes = '沒有選擇要上傳的文件';
				break;
			case 6 :
				$mes = '沒有找到臨時目錄';
				break;
			case 7 :
			case 8 :
				$mes = '系統(tǒng)錯誤';
				break;
		}
		exit ( $mes );
	}
	// 判斷文件類型
	// $ext=strtolower(end(explode(".", $fileInfo['name']))); //得到后綴名,或者用下面的方法
	$ext = pathinfo ( $fileInfo ['name'], PATHINFO_EXTENSION );
// 	$allowedExt = array (
// 			"jpeg",
// 			"jpg",
// 			"png",
// 			"gif" 
// 	);
	//
	if(!is_array($allowedExt)){
		exit("文件擴展名不是數(shù)組");
	}
	if (! in_array ( $ext, $allowedExt )) {
		exit ( "非法文件類型" );
	}
	// print_r(getp_w_picpathsize($fileInfo['tmp_name']));exit;
	// 判斷是否是真實的圖片文件類型,如果不需要做此檢測可以設(shè)定$flag為false
	if ($flag) {
		if (! getp_w_picpathsize ( $fileInfo ['tmp_name'] )) {
			exit ( "上傳文件不是真實的圖片文件" );
		}
	}
	// 判斷文件大小
	if ($fileInfo ['size'] > $maxSize) {
		exit ( "上傳文件大小超過本站限制" );
	}
	// 是否是通過POST方式上傳,需要檢測的是臨時文件
	// var_dump(is_uploaded_file($fileInfo['tmp_name']));exit;
	if (! is_uploaded_file ( $fileInfo ['tmp_name'] )) {
		exit ( "非法上傳方式" );
	}
	// 檢測完畢后移動文件
	//$path = "upload";
	if (! file_exists ( $path )) {
		mkdir ( $path, 0755, true );
		chmod ( $path, 0755 );
	}
	$uniqName=md5 ( uniqid ( microtime ( true ), true ) ) . "." . $ext;
	$destination = $path . "/" . $uniqName;
	if (! @move_uploaded_file ( $fileInfo ['tmp_name'], $destination )) {
		// 加上@ 是為了不顯示溢出錯誤
		exit ( "文件上傳失敗" );
	}
	
	echo "文件上傳成功!";
}

標題名稱:優(yōu)化后的單文件上傳函數(shù)
鏈接地址:http://muchs.cn/article8/ieghip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、面包屑導(dǎo)航、網(wǎng)站排名微信公眾號、手機網(wǎng)站建設(shè)、動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護公司