19 declare(strict_types=1);
28 public const SEC =
".sec";
34 public function __construct(array $white_list,
protected array $black_list)
36 $this->white_list[] =
'';
37 $this->white_list = array_unique($white_list);
53 return $this->black_list;
64 $pi = pathinfo($filename);
66 $basename = str_replace(
".",
"", $pi[
"basename"]);
67 if (trim($basename) ==
"") {
68 throw new \RuntimeException(
"Invalid upload filename.");
70 $basename .= self::SEC;
71 if ($pi[
"dirname"] !=
"" && ($pi[
"dirname"] !=
"." || substr($filename, 0, 2) ==
"./")) {
72 return $pi[
"dirname"] .
"/" . $basename;
82 $pi = pathinfo($filename);
84 return in_array(strtolower($pi[
"extension"]), $this->white_list)
85 && !in_array(strtolower($pi[
"extension"]), $this->black_list);
__construct(array $white_list, protected array $black_list)
hasValidFileName(string $filename)
getValidFileName(string $filename)