ThinkPHP内置了一个文件上传类,位于ORG类库包中的Net.UpdateFile类。最新版本的上传类包含的功能如下:批量上传、自动生成图片缩略图、上传检测、支持覆盖方式上传、支持上传类型、附件大小、上传路径定义、支持上传文件命名规则、支持对上传文件的Hash规则、根据日期或者哈希自动创建子目录。
[ 属性 ]
UploadFile类有很多有用的属性,可以非常灵活的进行设置。
maxSize 上传文件的最大值
allowExts 允许上传的文件后缀(使用数组定义)留空为不作检查
allowTypes 允许上传的文件类型(使用数组定义)留空为不作检查
thumb 是否对上传图片进行缩略图处理
thumbPath 缩略图保存路径
thumbMaxWidth 缩略图最大宽度
thumbMaxHeight 缩略图最大高度
thumbPrefix 缩略图命名前缀
thumbSuffix 缩略图命名后缀 默认为 _thumb
autoSub 是否启用子目录保存
subType 子目录创建方式 目前可以支持hash和date
dateFormat 日期格式的上传子目录创建格式 当subType=date 时有效 默认值Ymd
savePath 上传文件的保存路径
autoCheck 是否自动检查上传文件
uploadReplace 存在同名文件是否覆盖
saveRule 上传文件命名规则 留空则使用原来文件名保存
hashType 上传文件的哈希类型
[ 方法 ]
UploadFile类
upload($savePath='') 上传操作方法
getUploadFileInfo() 获取上传成功的文件信息
getErrorMsg() 获取最近一次的错误信息
PHP代码
import( "ORG.Net.UploadFile" );
$upload = new UploadFile();
//设置上传文件大小
$upload ->maxSize = 32922 ;
//设置上传文件类型
$upload ->allowExts = explode ( ',' , 'doc,rar,txt' );
//设置附件上传目录
$upload ->savePath = '../Public/Uploads/' ;
//执行上传操作
if (! $upload ->upload()) {
//捕获上传异常
$this ->error( $upload ->getErrorMsg());
} else {
$this ->success( '文件上传成功!' );
}