改进File类buildSaveName方法,支持更多的哈希规则生成

This commit is contained in:
thinkphp
2016-09-25 18:38:08 +08:00
parent 09483e88b2
commit b30db5c754

View File

@@ -344,19 +344,18 @@ class File extends SplFileObject
$savename = call_user_func_array($this->rule, [$this]); $savename = call_user_func_array($this->rule, [$this]);
} else { } else {
switch ($this->rule) { switch ($this->rule) {
case 'md5':
$md5 = md5_file($this->filename);
$savename = substr($md5, 0, 2) . DS . substr($md5, 2);
break;
case 'sha1':
$sha1 = sha1_file($this->filename);
$savename = substr($sha1, 0, 2) . DS . substr($sha1, 2);
break;
case 'date': case 'date':
$savename = date('Ymd') . DS . md5(microtime(true)); $savename = date('Ymd') . DS . md5(microtime(true));
break; break;
default: default:
$savename = call_user_func($this->rule); if (in_array($this->rule, hash_algos())) {
$hash = $this->hash($this->rule);
$savename = substr($hash, 0, 2) . DS . substr($hash, 2);
} elseif (is_callable($this->rule)) {
$savename = call_user_func($this->rule);
} else {
$savename = date('Ymd') . DS . md5(microtime(true));
}
} }
} }
} elseif ('' === $savename) { } elseif ('' === $savename) {