ホームページ >php教程 >PHP源码 >文件上传 函数

文件上传 函数

PHP中文网
PHP中文网オリジナル
2016-05-25 17:11:281138ブラウズ

代码

/**
 * 上传
 * @allowedTypes array 允许上传文件类型数组(后缀名)
 */
function upload($inputName, $allowedSize, $allowedTypes, $saveDir){
	if(empty($_FILES)) {
		msg("上传文件大小超出表单规定");	
	}
	
	if(empty($_FILES[$inputName]['tmp_name'])) {
		msg("上传文件大小超出控件规定");
	}
	
	//检查是否合法上传
	if(!is_uploaded_file($_FILES[$inputName]['tmp_name'])) {
		msg("上传文件不合法");	
	}
	
	//检查大小
	if($_FILES[$inputName]['size'] > $allowedSize) {
		msg("上传文件体积超出规定大小");
	}
	
	//检查类型
	$extension = array_pop(explode(".", $_FILES[$inputName]['name']));//后缀名
	if(!in_array($extension, $allowedTypes)) {
		msg("上传文件类型({$extension})不允许,只能是".implode(",", $allowedTypes));	
	}
	
	//重命名
	$sp = DIRECTORY_SEPARATOR;
	if(!file_exists($saveDir)) {
		mkdir($saveDir, 0777, true);
	}
	$new_filename = $saveDir.$sp.date("YmdHis").rand(10000, 99999).".".$extension;
	
	//移动
	$res = move_uploaded_file($_FILES[$inputName]['tmp_name'], $new_filename);
	
	if($res) {
		return $new_filename;
	}else{
		msg("上传文件失败");
	}
}
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。