diff --git a/Models/UploadFile.php b/Models/UploadFile.php index c8c8eec..fffdd81 100755 --- a/Models/UploadFile.php +++ b/Models/UploadFile.php @@ -152,20 +152,14 @@ class UploadFile } $split = \explode('.', $f['name']); - $result[$key]['filename'] = !empty($name) ? $name : $f['name']; + $result[$key]['filename'] = !empty($name) && !$this->preserveFileName ? $name : $f['name']; $extension = \count($split) > 1 ? $split[\count($split) - 1] : ''; $result[$key]['extension'] = $extension; - if ($this->preserveFileName) { - $name = $f['name']; - $result[$key]['filename'] = $name; - } - - if (!$this->preserveFileName || empty($name) || \is_file($path . '/' . $name)) { + if (!$this->preserveFileName || \is_file($path . '/' . $result[$key]['filename'])) { try { - $name = $this->createFileName($path, $f['tmp_name'], $extension); - $result[$key]['filename'] = $name; + $result[$key]['filename'] = $this->createFileName($path, $f['tmp_name'], $extension); } catch (\Exception $e) { $result[$key]['filename'] = $f['name']; $result[$key]['status'] = UploadStatus::FAILED_HASHING; @@ -184,7 +178,7 @@ class UploadFile } } - if (!\rename($f['tmp_name'], $dest = $path . '/' . $name)) { + if (!\rename($f['tmp_name'], $dest = $path . '/' . $result[$key]['filename'])) { $result[$key]['status'] = UploadStatus::NOT_MOVABLE; return $result; diff --git a/tests/Admin/AdminTest.php b/tests/Admin/AdminTest.php index 029d449..0eb08b5 100755 --- a/tests/Admin/AdminTest.php +++ b/tests/Admin/AdminTest.php @@ -15,6 +15,7 @@ declare(strict_types=1); namespace Modules\Media\tests\Admin; use Modules\Media\Admin\Installer; +use phpOMS\Application\ApplicationAbstract; /** * @internal @@ -31,6 +32,13 @@ class AdminTest extends \PHPUnit\Framework\TestCase { $this->expectException(\phpOMS\System\File\PathException::class); - Installer::installExternal($GLOBALS['dbpool'], ['path' => 'invalid.json']); + $app = new class() extends ApplicationAbstract + { + protected string $appName = 'Api'; + }; + + $app->dbPool = $GLOBALS['dbpool']; + + Installer::installExternal($app, ['path' => 'invalid.json']); } }