<?php
class Upload{
private $tmp_name;
private $filename;
private $ext;
private $path="upload/";
private $error;
private $size;
function __construct(){
//单个图片上传
}
function upload_file($file){
//文件上传
$this->size=$file['size'];
$this->tmp_name=$file['tmp_name'];
$this->error=$file['error'];
//文件上传错误码
$res=$this->chackError();
if ($res['code']) {
return $res;
}
//检查文件大小
if ($this->size>1024000) {
$res=array('code'=>10,'msg'=>'size too big');
return $res;
}
//检查文件类型
$res=$this->chackType();
if ($res['code']) {
return $res;
}
$m=move_uploaded_file($this->tmp_name, $this->getFileName());
if ($m) {
$res=array('code'=>0,'msg'=>'ok');
}else{
$res=array('code'=>11,'msg'=>'文件move失败');
}
return $res;
}
function chackError(){
switch ($this->error) {
case '0':$res=array('code'=>0,'msg'=>'ok');
# code...
break;
case '1':$res=array('code'=>1,'msg'=>'size upload_max_filesize ');
# code...
break;
case '2':$res=array('code'=>2,'msg'=>'size MAX_FILE_SIZE ');
# code...
break;
case '3':$res=array('code'=>3,'msg'=>'文件只有部分上传');
# code...
break;
case '4':$res=array('code'=>4,'msg'=>'没有文件上传');
# code...
break;
case '5':$res=array('code'=>5,'msg'=>'服务器临时文件夹丢失');
# code...
break;
case '6':$res=array('code'=>6,'msg'=>'写入临时文件夹出错');
# code...
break;
default:$res=array('code'=>7,'msg'=>'未知错误');
# code...
break;
}
return $res;
}
function chackType(){
//检查文件类型
$s=@getimagesize($this->tmp_name);
$res=array('code'=>0,'msg'=>'ok');
if ($s) {
switch ($s['mime']) {
case 'image/gif':
$this->ext="gif";break;
case 'image/jpeg':
$this->ext="jpeg";break;
case 'image/png':
$this->ext="png";break;
case 'image/x-icon':
$this->ext="x-icon";break;
default:
$res=array('code'=>8,'msg'=>'gif png jpeg x-icon');
break;
}
}else{
$res=array('code'=>9,'msg'=>'getimagesize error');
}
return $res;
}
function getFileName(){
//获取文件名
$dir=$this->path.date("Y-m-d",time());
$filename=date("h-i-s-",time()).rand(1000,9999);
if (!is_dir($dir)) {
mkdir($dir);
}
$this->filename=$dir."/".$filename.".".$this->ext;
return $this->filename;
}
}
header("Content-Type:text/html;charset=utf-8");
echo "<pre>";
var_dump($_FILES);
echo "</pre>";
$f=new Upload;
$res=$f->upload_file($_FILES['file1']);
echo "<pre>";
var_dump($res);
echo "</pre>";
PHP文件上传类
最新推荐文章于 2024-10-09 11:23:49 发布