参考文档做多文件上传的时候,会丢失文件
例如上传三张图片,会返回三个保存路径,但是服务器存放图片的文件夹内可能只有两张图片
然后开始各种调试,百度...#¥%...^&*
直到无意间发现返回路径有重复...
经过我仔(bai)细(du)分(sou)析(suo)之后,才知道问题出在tp生成文件名的规则
先看一下这个规则(thinkphp/library/think/File.php,约在第394行)
$savename = date('Ymd') . DS . md5(microtime(true));
也就是同一批文件命名是以微秒来标识的,虽然微秒已经算很小的单位了,但事实证明仍然会有重复
因此要解决这个问题,得把这个粒度再细化
$savename = date('Ymd') . DS . md5(uniqid(microtime(true),true));