php上传函数怎样封装?
<?php //上传文件挪用 $file = $_FILES['image']; //许可上传的范例 $allow = array('image/jpeg', 'image/png', 'image/jpg', 'image/gif'); $path = './uploads'; $maxsize = 1024 * 1024 * 3; $result = upload($file, $allow, $error, $path, $maxsize); if ($result) { //上传胜利 echo "文件上传胜利,新的文件名叫".$result; }else{ //上传失利 echo $error; } /** *文件的上传 *@param array $file 上传的文件的相干信息(是一个数组有五个元素) *@param array $allow 许可文件上传的范例 *@param string & $error 援用通报,用来纪录毛病的信息 *@param string $path 文件上传的目次,不带末了的 / *@param int $maxsize = 1024*1024 许可上传的文件大小 *@return mixed false | $newname 假如上传失利返回false,胜利返回文件的新名字 **/ function upload($file, $allow, &$error, $path, $maxsize =1048576){ //先推断体系毛病 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; } //推断逻辑毛病 //考证文件的大小 if ($file['size'] > $maxsize) { //超越用户了本身划定的大小 $error = '上传毛病,超越了文件限定的大小!'; return false; } //推断文件的范例 if (!in_array($file['type'], $allow)) { //不法的文件范例 $error = '上传的文件的范例不正确,许可的范例有:'.implode(',', $allow); return false; } //挪动临时文件 //指定文件上传后保留的途径 $newname = randName($file['name']); //获得文件新的名字 //推断$path 目次是不是存在 不存在则建立 if (!file_exists($path)) { mkdir($path, 0777, true); } $target = $path . '/' . $newname; $result = move_uploaded_file($file['tmp_name'], $target); if ($result) { //上传胜利 return $newname; }else{ //上传失利 $error = '发作未知毛病,上传失利'; return false; } } /** *生成一个随机名字的函数 文件名=当前的时候 + 随机的几位数字 *@param string $filename 文件的原始名字 *@return string $newname 文件的新名字 * */ function randName($filename){ //生成文件名的时候部份 $newname = date('YmdHis'); //加上随机的6位数 $str = '0123456789'; for ($i=0; $i < 6; $i++) { $newname .= $str[mt_rand(0, strlen($str)-1)]; } //加上文件的后缀名 $newname .= strrchr($filename, '.'); return $newname; }
HTML上传代码
<!DOCTYPE html> <html> <head> <title>文件上传</title> <meta charset="utf-8"> </head> <body> <form method="post" action="upload.php" enctype="multipart/form-data"> <input type="file" name="image"> <input type="submit" name="" value="上传"> </form> </body> </html>
引荐:《PHP教程》
以上就是php上传函数怎样封装的细致内容,更多请关注ki4网别的相干文章!