- //First, does the file have a valid name?
- $reg = "/^([^" . implode('', $this->bad_chars) . "]+)\.(" .
- implode('|', $this->allowed_extensions) . ")$/i";
- if (preg_match($reg, $name, $matches)) {
- Analog::log(
- '[' . $class . '] Filename and extension are OK, proceed.',
- Analog::DEBUG
- );
- $extension = strtolower($matches[2]);
- if ($extension == 'jpeg') {
- //jpeg is an allowed extension,
- //but we change it to jpg to reduce further tests :)
- $extension = 'jpg';
- }
- } else {
- $erreg = "/^([^" . implode('', $this->bad_chars) . "]+)\.(.*)/i";
- $m = preg_match($erreg, $name, $errmatches);
-
- $err_msg = '[' . $class . '] ';
- if ($m == 1) {
- //ok, we got a good filename and an extension. Extension is bad :)
- $err_msg .= 'Invalid extension for file ' . $name . '.';
- $ret = self::INVALID_EXTENSION;
- } else {
- $err_msg = 'Invalid filename `' . $name . '` (Tip: ';
- $err_msg .= preg_replace(
- '|%s|',
- htmlentities($this->getBadChars()),
- "file name should not contain any of: %s). "
- );
- $ret = self::INVALID_FILENAME;
- }