今天是个好日子啊,学习了两个非常重要的知识点啊,分页和上传文件,不得不说这两个东西有点绕啊,需要慢慢理解消化!
依葫芦画瓢封装了一个上传文件分函数,分页基本上没有什么太大的问题了!
<?php /** * 此文件用来封装一个上传文件的函数 * @param array $file 上传的文件的信息(以为数组,包含5个元素) * @param array $allow 允许上传的文件类型 * @param string &$error 引用传递,用来记录错误信息 * @param string $path 文件上传的目录 * @param int $maxsize 允许上传的文件的大小 * @return mixed false/$newname 上传失败返回false,上传成功返回新文件名 */ function upload($file,$allow,&$error,$path,$maxsize=1048576){ // 1.先判断系统错误 switch($file[‘error‘]){ case 1: $error = "上传失败!超出了文件限制的大小!"; return false; case 2: $error = "上传失败!超出了浏览器规定的文件大小!"; return false; case 3: $error = "上传失败!文件上传不完整!"; return false; case 4: $error = "上传失败!请选择要上传的文件!"; return false; case 6: case 7: $error = "对不起,服务器繁忙,请稍后再试!"; return false; } // 2.判断逻辑错误 if($file[‘size‘] > $maxsize){ $error = "上传失败!文件太大!"; return false; } if(!in_array($file[‘type‘],$allow)){ $error = "上传文件的类型不正确,正确的类型为:" . implode(‘,‘,$allow); return false; } // 3.移动临时文件到指定目录 //获取新文件名 $newname = randName($file[‘name‘]); $target = $path . ‘/‘ . $newname; $result = move_uploaded_file($file[‘tmp_name‘],$target); if($result){ return $newname; }else{ $error = "发生未知错误,上传失败!"; return false; } } /** * 此函数用来生成一个随机的文件名(当前的年月日时分秒+6位随机数字+后缀名) * @param string $filename 原文件名 * @return string $newname 新文件名 */ function randName($filename){ // 1.生成文件名的时间部分 $newname = date("YmdHis"); // 2.加上随机产生的6位数 $str = "0123456789"; for($i=0;$i<6;++$i){ $newname .= $str[mt_rand(0,strlen($str)-1)]; } // 3.加上文件的后缀名 $newname .= strrchr($filename,‘.‘); return $newname; }
时间: 2024-10-07 05:22:11