文件上传处理函数

<?php
/*
*
*文件上传处理函数
*@param string filename 要上传的文件表单项名
*@param string $path 上传文件保存路径
*@param array  $typelist允许的文件类型
*@return array $res 两个单元:["error"] false:失败,true:成功
*						{"info"} 存放失败原因或成功的文件名
*/
function uploadeFile($filename,$path,$typelist=null)
{
	//1、获取要上传的名字
	$upfile = $_FILES[$filename];
	if(empty($typelist))
	{
		$typelist=array("image/gif","image/jpg","image/jpeg","image/png");//允许的文件类型
	}
	
	//$path="uploads";//指定上传的的保存路径(相对的)
	$res=array("erroy"=>false);//存放返回的结果
	
	//2、过滤上传文件的错误号
	if($upfile["error"]>0)
	{
		switch($upfile["error"])
		{
			case 1:
			$res["info"]="上传的文件超过了php.ini中uploade_max_filesize选项限制";
			break;
			case 2:
			$res["info"] = "上传的文件的大小超过了HTMl表单中MAX_FILE_SIZE 选项";
			break;
			case 3:
			$res["info"] = "文件只有部分被上传";
			case 4:
			$res["info"] = "没有文件被上传";
			break;
			case 6:
			$res["info"] = "找不到临时文件";
			break;
			case 7:
			$res["info"] = "文件写入失败";
			break;
			default:
			$res["info"] = "未知错误!";
		}
		return $res;
	}
	//3.本次文件大小的限制
	if($upfile["size"]>100000)
	{
		$res["info"] = "上传文件过大!";
	}
	//4、过滤类型
	if(!in_array($upfile["type"],$typelist))
	{
		$res["info"] = "上传类型不符!".$upfile["type"];
	}
	//5、初始化下信息(为图片产生一个随机名字)
	$fileinfo = pathinfo($upfile["name"]);
	do{
		$newfile = date("YmdHis").rand(1000,9999).".".$fileinfo["extension"];
	}while(file_exists($newfile));
	
	//6、执行上传处理
	if(is_uploaded_file($upfile["tmp_name"]))
	{
		if(move_uploaded_file($upfile["tmp_name"],$path."/".$newfile))
		{
			//将上传成功后的文件名赋值给返回数组
			$res["info"]=$newfile;
			$res["error"]=true;
			return $res;
		}else{
			$res["info"] = "上传文件失败!";
		}
	}else{
		$res["info"] = "不是一个上传的文件";
	}
	return $res;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值