解决ThinkPHP多文件上传重名的问题

前几天开发时,需要同时上传两张图,但总出现问题,打开提示,显示的事文件名已存在。

各种搜索,没找到解决方法,然后就改成了uploadify上传,但治标不治本,同事说可以修改uploadFile的类,获取savename时增加随机数。

修改savename

private function getSaveName($filename) {
    $rand = mt_rand(1000,9999);  //生成五位随机数
        $rule = $this->saveRule;
        if(empty($rule)) {//没有定义命名规则,则保持文件名不变
            $saveName = $filename['name'];
        }else {
            if(function_exists($rule)) {
                //使用函数生成一个唯一文件标识号  加入随机数
                $saveName = $rule().$rand.".".$filename['extension'];
            }else {
                //使用给定的文件名作为标识号
                $saveName = $rule.$rand.".".$filename['extension'];
            }
        }
        if($this->autoSub) {
            // 使用子目录保存文件
            $filename['savename'] = $saveName;
            $saveName = $this->getSubName($filename).$saveName;
        }
        return $saveName;
    }

这样就几乎不会出现同名的情况了。


解决ThinkPHP多文件上传重名的问题
https://github.13sai.com/2016/09/04/68/
作者
13sai
许可协议