<?php
class Upload{
public $allowType=array('jpg','jpeg','png','rar');
public $maxSize=1;//最大的文件大小
public $error='';//错误信息
/**
*
*分析$_FILES中$name域的信息,如$_FILES['pic']
*@param string $name 表单中file表单项的name值
*@return array 上传文件信息,包含(tmp_name,name,type,error,size)
*
*/
public function getInfo($name){
return $_FILES[$name];
}
/*
*
*检测文件是否符合类型
*@param $exit,文件的后缀名(不含.)
*@return 失败返回false,成功返回true
*/
public function checkType($exit){
return in_array($exit,$this->allowType);
}
/**
*
*检测文件大小
*@param int $size上传图片的文件大小
*@return bool
*
*/
public function checkSize($size){
return $size<$this->maxSize*1024*1024;
}
/**
*
*失败输出的信息
*@return string 错误信息
*
*/
public function getError(){
return $this->error;
}
/**
*
*创建目录
*@param 目录的绝对路径,到upload之前,默认为当前目录
*返回路径
*/
public function createDir($root){
$dir=$root."upload/".date('Y/md/');
if(is_dir($dir) || mkdir($dir,0777,true)){
return $dir;
}else{
return false;
}
}
/*
*
*获取随机字符串,用于拼接图片名
*@param string $length字符串长度
*@return string $str
*/
public function randStr($length=6){
$str=str_shuffle("qwertyuioplkjhgfdsazxcvbnmQWYRIEOKFCNMVZALP1234567890");
$str=time().substr($str,0,$length);
return $str;
}
/**
*
*执行文件,上传图片
*@param string $name 资源名
*@param string $root 绝对路径,想要输出的目录
*@return array $data 图片路径和图片名
*/
public function up($name,$root=''){
//检测是否有文件上传,或者参数是否正确
if(!isset($_FILES[$name])){
$this->error='请上传文件!';
echo $this->getError();exit;
}
//检测文件类型是否符合
$info=$this->getInfo($name);
$type=ltrim(strrchr($info['name'],'.'),'.');
if(!$this->checkType($type)){
$this->error='文件类型不符合!';
echo $this->getError();exit;
}
if(!$this->checkSize($info['size'])){
$this->error='文件大于'.$this->maxSize.'M';
echo $this->getError();exit;
}
//上传图片
//创建目录
$dir=$this->createDir($root);
//拼接参数
$filename=$this->randStr().'.'.$type;
if(move_uploaded_file($info['tmp_name'],$dir.'/'.$filename)){
//返回图片名和图片路径
$data['name']=$filename;
$data['path']=$dir;
return $data;
}
}
}
//var_dump($_FILES);
$a= new Upload();
$a->up('pic1');
?>
图片上传封装类
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 下面是源码.h文件 import "XMWUploadManager.h" import "TXYUploadMa...
- 文/ZYRzyr原文链接:http://www.jianshu.com/p/c66d50cd14ee 阅读建议:本...
- HTTPMethod.h HTTPMethod.m 数据解析 提交表单的时候,例如个人信息,有头像和基本信息都要上...
- 作者:邹峰立,微博:zrunker,邮箱:zrunker@yahoo.com,微信公众号:书客创作,个人平台:ww...
- 1在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫Glide的图片加载库,作者是bumptech。这个库被广...