单文件上传 - ThinkPHP 3.2

本文主要摘自官方ThinkPHP3.2完全开发手册中文件上传这一小节的内容。
ThinkPHP文件上传操作使用Think\Upload 类,假设前面的表单提交到当前控制器的upload方法,下面是upload方法的简便实现代码:
 1 public function upload(){
 2     $upload = new \Think\Upload();// 实例化上传类
 3     $upload->maxSize = 3145728 ;// 设置附件上传大小
 4     $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类 型 
 5     $upload->savePath = './Public/Uploads/'; // 设置附件上传目录
 6     // 上传文件
 7     $info = $upload->upload();
 8     if(!$info) {// 上传错误提示错误信息
 9         $this->error($upload->getError());
10     }else{// 上传成功
11         $this->success('上传成功!');
12     }
13 }

 

除上述对Upload类进行动态赋值外,还可以利用数组对Upload类进行实例化传入赋值,如下所示:
1 $config = array(
2     'maxSize' => 3145728,
3     'savePath' => './Public/Uploads/',
4     'saveName' => array('uniqid',''),
5     'exts' => array('jpg', 'gif', 'png', 'jpeg'),
6     'autoSub' => true,
7     'subName' => array('date','Ymd'),
8  );
9 $upload = new \Think\Upload($config);// 实例化上传类

 

下表是Upload类支持的属性:
属性
描述
maxSize
int,默认0,文件上传的最大文件大小(以字节为单位),0为不限大小
rootPath
String,文件上传保存的根目录
savePath
String,文件上传保存的目录(相对于根目录)
saveName
String or Array,上传文件的保存规则,支持数组和字符串方式定义
saveExtString,上传文件的保存后缀,默认为使用原文件后缀
replace
boolean,默认false,是否覆盖同名文件
exts
String or Array,默认为空,允许上传的文件后缀(留空为不限制),使用数组或者逗号分隔的字符串
mimes
String or Array,默认为空,允许上传的文件类型(留空为不限制),使用数组或者逗号分隔的字符串
autoSub
boolean,默认为true,自动使用子目录保存文件,默认为true
subName
String or Array,子目录创建方式,采用数组或者字符串方式定义
hash
boolean,默认为true,是否生成文件的hash编码
callback
检测文件是否存在回调,如果存在返回文件信息数组

返回上传之后的操作结果

设置好上传的参数后,就可以调用Think\Upload 类的upload方法进行附件上传,如果失败,返回 false,并且用getError方法获取错误提示信息;如果上传成功,就返回成功上传的文件信息数组。
 1 public function upload(){
 2   $upload = new \Think\Upload();// 实例化上传类
 3       $upload->maxSize = 3145728 ;// 设置附件上传大小
 4       $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
 5       $upload->savePath = './Public/Uploads/'; // 设置附件上传目录
 6       // 上传文件
 7       $info = $upload->upload();
 8       if(!$info) {// 上传错误提示错误信息
 9         $this->error($upload->getError());
10       }else{// 上传成功 获取上传文件信息
11         foreach($info as $file){
12               echo $file['savepath'].$file['savename'];
13             }
14   }
15 }

 

每个文件信息记录了与上传文件相关的信息的数组,包括:
属性
描述
key
附件上传的表单名称
savePath
上传文件的保存路径
name
上传文件的原始名称
savename
上传文件的保存名称
size
上传文件的大小
type
上传文件的MIME类型
ext
上传文件的后缀类型
md5
上传文件的md5哈希验证字符串,仅当hash设置开启后有效
sha1
上传文件的sha1哈希验证字符串,仅当hash设置开启后有效

转载于:https://www.cnblogs.com/code-ten/p/4763509.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值