同时上传多个文件会出现文件名重复的问题

浏览:5125 发布日期:2013/06/27 分类:求助交流 关键字: 同时上传多个文件会出现文件名重复的问题
规则设计如下                            $upload = new UploadFile();
               ...........................
                //设置上传文件规则
                $upload->saveRule = 'uniqid';
如果我同时上传多个文件,50%以上概率会出现提示文件51cbd1e7ebaac.jpg已存在,上传不成功
我调试了一下UploadFile.class.php源文件的getSaveName()方法,输出:
dump($file['name']) == 0001.jpg
dump($saveName) == 51cbd1e7ebaac.jpg
dump($file['name']) == 0002.jpg
dump($saveName) == 51cbd1e7ebaac.jpg

证明如果极短时间两次调用getSaveName() 得到的uniqid()文件名是一样的,这样就造成同时上传
多文件会出错
改了一下源代码(如下)就会好很多,但这似乎不是正常解决办法,想自定义一个规则函数,这个自定义函数要放在
什么目录中if(function_exists($rule)) { 这句代码才识别我自定的函数?~ private function getSaveName($filename) {
             ...............
                //使用函数生成一个唯一文件标识号
              if(function_exists($rule)) { 
                //$saveName = $rule().".".$filename['extension'];
                $saveName = $rule().mt_rand().".".$filename['extension'];
           ..................
        return $saveName;
    }
最佳答案
评论( 相关
后面还有条评论,点击查看>>