PHP文件上傳

1 文件上傳基本案例

form.html文件以下:php

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>文件上傳</title>
</head>
<body>
	<form action="test.php" method="post" enctype="multipart/form-data">
		用戶名:<input type="text" name="user">
		頭像:<input type="file" name="pic">
		<input type="submit" value="提交">
	</form>
</body>
</html>

test.php文件以下:html

<?php
if($_FILES['pic']['error'] == 0){
	// 1.限制文件上傳的大小
	$max_size = 2*1024*1024;	// 限制上傳文件最大值爲2M
	if($_FILES['pic']['size'] > $max_size){
		die('文件大小最大不能超過2M');
	}
	// 2.防止文件重名
	$file_name = uniqid('si_', false);		// 文件名稱
	$file_suffix = strrchr($_FILES['pic']['name'], '.');	// 文件後綴
	$file_upload_root_path = './uploads/';		// 文件上傳根路徑
	// 3.按照年月日格式建立子目錄
	$file_upload_sub_path = date('Ymd') . '/';
	if(!is_dir($file_upload_root_path . $file_upload_sub_path)){
		mkdir($file_upload_root_path . $file_upload_sub_path, 0777, true);
	}
	$file = $file_upload_root_path . $file_upload_sub_path . $file_name . $file_suffix;	// 文件全名
	// 4.限制用戶上傳的文件類型
	$allow_type = ['image/png', 'image/gif', 'image/jpg', 'image/jpeg'];
	if(!in_array($_FILES['pic']['type'], $allow_type)){
		die('格式錯誤,請選擇jpg|gif|png類型的圖片');
	}
	$finfo = new finfo(FILEINFO_MIME_TYPE);
	$file_type = $finfo->file($_FILES['pic']['tmp_name']);
	if(!in_array($file_type, $allow_type)){
		die('您上傳的格式不正確');
	}
	// 5.執行上傳操做
	if(move_uploaded_file($_FILES['pic']['tmp_name'], $file)){
		echo '上傳成功';
	}else{
		echo '上傳失敗';
	}
}else{
	echo '上傳失敗';
}
相關文章
相關標籤/搜索