thinkphp功能类之Upload.class.php

Posted mofei12138

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp功能类之Upload.class.php相关的知识,希望对你有一定的参考价值。

Thinkphp 中常用功能类(Upload.class.php)
构造参数
$config = array(
‘mimes‘ => array(), //允许上传的文件MiMe类型
‘maxSize‘ => 0, //上传的文件大小限制 (0-不做限制)
‘exts‘‘ => array(‘jpg‘, ‘gif‘, ‘png‘, ‘jpeg‘);// 设置附件上传类型
‘rootPath‘ => ‘./Uploads/‘, //保存根路径
‘savePath‘ => ‘‘, //保存路径 相当于二级目录
------------------------------ 以上为常用配置项----------------------------------
‘autoSub‘ => true, //自动子目录保存文件
‘subName‘ => array(‘date‘, ‘Y-m-d‘), //子目录创建方式,[0]-函数名,[1]-参数,多个参数使用数组
‘saveName‘ => array(‘uniqid‘, ‘‘), //上传文件命名规则,[0]-函数名,[1]-参数,多个参数使用数组
‘saveExt‘ => ‘‘, //文件保存后缀,空则使用原后缀
‘replace‘ => false, //存在同名是否覆盖
‘hash‘ => true, //是否生成hash编码
‘callback‘ => false, //检测文件是否存在回调,如果存在返回文件信息数组
‘driver‘ => ‘‘, // 文件上传驱动
‘driverConfig‘ => array(), // 上传驱动配置
);
也可以通过对象来设置
**$upload->maxSize = 3145728 ;// 设置附件上传大小
$upload->exts = array(‘jpg‘, ‘gif‘, ‘png‘, ‘jpeg‘);// 设置附件上传类型
$upload->savePath = ‘./Public/Uploads/‘; // 设置附件上传目录**
 2 创建对象

$upload = new \\Think\\Upload(config);

3  $result=$upload->upload();
//upload为多文件上传 从源码中可以看出  默认使用$_FILES
技术图片

上传一个文件
**result=upload->uploadOne();**
要自己传入参数为$_FILES[‘指定的名称‘从源码中可以看出uploadOne是使用upload包装了一层

技术图片


4.上传成功返回的是一个二维数组

array(1)
   ["logo"] => array(9)
    ["name"] => string(21) "2018-09-11_182443.png"
    ["type"] => string(9) "image/png"
    ["size"] => int(6669)
    ["key"] => string(4) "logo"
    ["ext"] => string(3) "png"
    ["md5"] => string(32) "72f65ce4adc8c1ffc2eaba302374613e"
    ["sha1"] => string(40) "0ffd62818cc682e2cd30abba624074dd1338fb4b"
    ["savename"] => string(17) "5d8758801ca2f.png"
    ["savepath"] => string(17) "Goods/2019-09-22/"

5 错误信息 保存到模型中
技术图片

 

以上是关于thinkphp功能类之Upload.class.php的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp功能类之 Page.class.php

视频学习笔录---ThinkPHP---TP功能类之分页

使用ThinkPHP实现附件上传

Upload.class.php

异常类之父类

Spring源码解析-核心类之XmlBeanDefinitionReader