温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

优化后的单文件上传函数

发布时间:2020-05-22 17:31:11 来源:网络 阅读:625 作者:jaty0817 栏目:web开发
$fileInfo = @$_FILES ['myFile'];//接收表单上传的文件 //5个参数中,第一个是必须,后面都有默认值 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内	//$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 = '系统错误';	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("文件扩展名不是数组");	}	if (! in_array ( $ext, $allowedExt )) {	exit ( "非法文件类型" );	}	// print_r(getp_w_picpathsize($fileInfo['tmp_name']));exit;	// 判断是否是真实的图片文件类型,如果不需要做此检测可以设定$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 "文件上传成功!"; }


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI