問題:
- 在使用thinkphp5的File類預設date的命名規則,上傳多張圖檔導緻命名重複覆寫上傳檔案的問題。下面是thinkphp5的原代碼:
case 'date':
$savename = date('Ymd') . DS . md5(microtime(true));
- 錯誤結果
/tmp/phpDZ9Dol
/d9595bb3d6895f7388a8ca8a52.jpg
/d9595bb3d6895f7388a8ca8a52.jpg
/d9595bb3d6895f7388a8ca8a52.jpg
/tmp/php3qSYP4
/d05eb11e955ee47105e3ff28d83a1582.jpg
/d05eb11e955ee47105e3ff28d83a1582.jpg
/d05eb11e955ee47105e3ff28d83a1582.jpg
/tmp/php3OYlhO
/de1dba77a50c1c97573bc541a12361.jpg
/de1dba77a50c1c97573bc541a12361.jpg
/de1dba77a50c1c97573bc541a12361.jpg
/tmp/phpRMMLIx
/b2020f86c54ea1e3a51ba9d286dbef0.jpg
/b2020f86c54ea1e3a51ba9d286dbef0.jpg
/b2020f86c54ea1e3a51ba9d286dbef0.jpg
/tmp/phpXfIdah
/d03379ecf0292c8d4d14e4ce76a81ae1.jpg 問題
/d03379ecf0292c8d4d14e4ce76a81ae1.jpg 問題
/d03379ecf0292c8d4d14e4ce76a81ae1.jpg 問題
/tmp/phpv7gIB0
/d03379ecf0292c8d4d14e4ce76a81ae1.jpg 問題
/d03379ecf0292c8d4d14e4ce76a81ae1.jpg 問題
/d03379ecf0292c8d4d14e4ce76a81ae1.jpg 問題
/tmp/phpFwXd3J
/ba7b97e9281c15fcb2256eb3d4d0647.jpg
/ba7b97e9281c15fcb2256eb3d4d0647.jpg
/ba7b97e9281c15fcb2256eb3d4d0647.jpg
/tmp/phpT1KKut
/ef906542e81eb0c8494f776197b.jpg
/ef906542e81eb0c8494f776197b.jpg
/ef906542e81eb0c8494f776197b.jpg
解決:
case 'date':
//保持檔案名唯一性。
$savename = date('Ymd') . DS . md5(microtime(true).$this->filename);