ThinkPHP实现文件上传

import("ORG.Net.UploadFile"); $upload = new UploadFile(); // 实例化上传类

实例化上传类之后,就可以设置一惟上传的属性(参数),支持的属性有:

maxSize: 文件上传的最大文件大小(以字节为单位)默认为-1 不限大小

savePath:文件保存路径,如果留空会取UPLOAD_PATH常量定义的路径

saveRule:上传文件的保存规则,必须是一个无需任何参数的函数名,例如可以是time、uniqid com_create_guid 等,但必须能保证生成的文件名是唯一的,默认是uniqid

hashType:上传文件的哈希扬澶方法,默认是md5_file

autoCheck:是否自动检测附件,默认为自动检测

uploadReplace:存再同名文件是否是覆盖

allowExts:允许上传的文件后缀(留空为不限制),使用数组设置,默认为空数组

allowTypes:允许上传的文件类型(留空为不限制),使用数组设置,默认为空数组

thumb:是否需要对图片文件进行缩略图处理,默认为false

thumbMaxWidth:缩略图的最大宽度,多个使用逗号分隔

thumbMaxHeight:缩略图的最大高度,多个使用逗号分隔

thumbPrefix:缩略图的文件前缀,默认为thumb_

thumbSuffix:缩略图的文件后缀,默认为空

thumbPath:缩略图的保存路径,留空的话取文件上传目录本身

thumbFile:指定缩略图的文件名

thumbRemoveOrigin:生成缩略图后是否删除原图

autoSub:是否使用子目录保存上传文件

subType:子目录创建方式,默认为hash,可以设置为hash或者date

dateFormat:子目录方式为date的时候指定日期格式

hashLevel:子目录保存的层次,默认为一层

PHP实例代码:

  1. Public function upload(){
  2. import("ORG.Net.UploadFile");
  3. $upload = new UploadFile(); // 实例化上传类
  4. $upload->maxSize = ; // 设置附件上传大小
  5. $upload->allowExts = array('jpg' 'gif' 'png' 'jpeg'); // 设置附件上传类型
  6. $upload->savePath = './Public/Uploads/'; // 设置附件上传目录
  7. if(!$upload->upload()) { // 上传错误提示错误信息
  8. $this->error($upload->getErrorMsg());
  9. }else{ // 上传成功获取上传文件信息
  10. $info = $upload->getUploadFileInfo();
  11. } // 保存表单数据包括附件数据
  12. $User = M("User"); // 实例化User对象
  13. $User->create(); // 创建数据对象
  14. $User->photo = $info[0]["savename"]; // 保存上传的照片根据需要自行组装
  15. $User->add(); // 写入用户数据到数据库
  16. $this->success("数据保存成功!"); }