CI框架重写文件上传类.pdf
//
// 文件说明:文件上传处理类
// 文件作者:苦涩的梦
// 作者主页:
// 最后更新:2011-5-14
//
ClassCI_Upload{
var$dir; //附件存放物理目录
var$dirtype = 2;//0为不创建子目录
var$allow_types; //允许上传附件类型
var$field; //上传控件名称
var$maxsize; //最大允许文件大小,单位为KB
var$is_delsource = false;//是否删除原图片
var$is_thumb = false;//是否生成缩略图
var$thumb_width; //缩略图宽度
var$thumb_height; //缩略图高度
var$is_watermark = false; //是否添加水印
var$watermark_file;//水印图片地址
var$watermark_pos; //水印位置
var$watermark_trans;//水印透明度
var$fileinfo = array();
var$errmsg; //错误提示
//构造函数
functionCI_Upload($config) {
if(is_array($config)){
foreach($configas$i=>$v){
$this->$i = $v;
}
}
}
//设置并创建文件具体存放的目录
//$basedir : 基目录,必须为物理路径
//$filedir : 自定义子目录,可用参数{y}、{m}、{d}
functionset_dir($basedir){
$dir=$basedir;
!is_dir($dir)&&@mkdir($dir,0777);
$this->dir=$dir;
}
//图片缩略图设置,如果不生成缩略图则不用设置
//$width: 缩略图宽度 ,$height: 缩略图高度
functionset_thumb($is_thumb =false,$width=0,$height=0,$is_delsource=false){
$this->is_thumb =$is_thumb;
$this->thumb_width =$width;
$this->thumb_height=$height;
$this->is_delsource= $is_delsource;
}
//图片水印设置,如果不生成添加水印则不用设置
//$file: 水印图片 ,$pos: 水印位置 ,$trans: 水印透明度
functionset_watermark($file,$pos=6,$trans=80){
$this->watermark_file =$file;
$this->watermark_pos =$pos;
$this->watermark_trans=$trans;
}
/*
执行文件上传,处理完返回一个包含上传成功或失败的文件信息数组,
其中:name 为文件名,上传成功时是上传到服务器上的文件名,上传失败则是本地的文件名
dir 为服务器上存放该附件的物理路径,上传失败不存在该值
size 为附件大小,上传失败不存在该值
flag 为状态标识,1表示成功,-1 表示文件类型不允许,-2表示文件大小超出
*/
functionexecute($field="") {
$files=array(); //成功上传的文件信息
if(empty($field))
$field= $this->field;