$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;
} 最佳答案