ThinkPHP的Upload.class.php解析

本文详细解析了ThinkPHP中Upload.class.php的工作原理和参数处理过程,包括finfo的文件处理、local.class.php的路径管理,以及mimes、maxSize、exts等参数的作用。同时,指出了saveName参数在多文件上传时的局限性,以及如何理解并使用upload方法的参数。
摘要由CSDN通过智能技术生成

前面写过一篇文章,也是关于这个的,不过我不满意,所以重新写一遍。

在这里我不会按照这个类逐行解释过程了,那样效率不高,而且也没有什么用,所以这里就先讲一下他的工作原理,再来就是使用的方法了及其过程了。

Part 1:Upload原理

其实原理很简单,就是借用了php的finfo进行文件的处理,再来使用ThinkPHP下的Library下的Upload下的local.class.php进行上传文件路径的管理。

类似就是下面的方式:

  • finfo:进行上传文件的处理
  • local.class.php:进行上传路径的管理

剩下的部分就是保证其中各个参数的正确性。

Part 2:传入参数处理过程

传入的参数有以下这些:

mimes

  • array类型

其实传入字符串也可以的,多个值之间使用逗号隔开,至于这个值是干嘛的,自己百度mime。这个其实就是一个判断值,判断之后接受到的值在不在你设置的这个array内部:

    /**
     * 检查上传的文件MIME类型是否合法
     * @param string $mime 数据
     */
    private function checkMime($mime) {
        return empty($this->config['mimes']) ? true : in_array(strtolower($mime), $this->mimes);
    }

maxSize

  • 整数类型

作用跟mimes一样,就是起一个判断的作用,文件最大上传大小,好像单位是bit。

    /**
     * 检查文件大小是否合法
     * @param integer $size 数据
     */
    private function checkSize($size) {
        return !($size > $this->maxSize) || (0 == $this->maxSize);
    }

exts

  • array类型

跟mimes一样,也可以输入字符串,用逗号隔开。起判断作用,文件的后缀。

    /**
     * 检查上传的文件后缀是否合法
     * @param string $ext 后缀
     */
    private function checkExt($ext) {
        return empty($this->config['exts']) ? true : in_array(strtolower($ext), $this->exts);
    }

autoSub

  • true或者false类型

在设置了rootPath和savePath之后,还会有子目录,这个子目录的默认格式是下一个参数,这个再说,而这里只是一个标志,表示是否开启子目录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值