diff options
| author | Greg Roach <fisharebest@gmail.com> | 2021-03-15 14:05:33 +0000 |
|---|---|---|
| committer | Greg Roach <fisharebest@gmail.com> | 2021-03-15 15:09:52 +0000 |
| commit | f0448b68d9ccb96d481d0f989b8bf9901c324b04 (patch) | |
| tree | fb39d85245dd7396ade50ce07e20763f83316c1d /app/Http/RequestHandlers/EditMediaFileAction.php | |
| parent | a2221dfbfbf1dfbb322e14294e5387499e722805 (diff) | |
| download | webtrees-f0448b68d9ccb96d481d0f989b8bf9901c324b04.tar.gz webtrees-f0448b68d9ccb96d481d0f989b8bf9901c324b04.tar.bz2 webtrees-f0448b68d9ccb96d481d0f989b8bf9901c324b04.zip | |
Filesystem error handling
Diffstat (limited to 'app/Http/RequestHandlers/EditMediaFileAction.php')
| -rw-r--r-- | app/Http/RequestHandlers/EditMediaFileAction.php | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/app/Http/RequestHandlers/EditMediaFileAction.php b/app/Http/RequestHandlers/EditMediaFileAction.php index ba643b62f8..d9daac825c 100644 --- a/app/Http/RequestHandlers/EditMediaFileAction.php +++ b/app/Http/RequestHandlers/EditMediaFileAction.php @@ -29,6 +29,7 @@ use Fisharebest\Webtrees\Services\PendingChangesService; use Fisharebest\Webtrees\Tree; use League\Flysystem\FilesystemException; use League\Flysystem\UnableToMoveFile; +use League\Flysystem\UnableToRetrieveMetadata; use League\Flysystem\Util; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; @@ -140,12 +141,20 @@ class EditMediaFileAction implements RequestHandlerInterface // Update the filesystem, if we can. if ($old !== $new && !$media_file->isExternal() && $filesystem->fileExists($old)) { try { - $filesystem->move($old, $new); - FlashMessages::addMessage(I18N::translate('The media file %1$s has been renamed to %2$s.', Html::filename($media_file->filename()), Html::filename($file)), 'info'); - } catch (FilesystemException | UnableToMoveFile $ex) { - // Don't overwrite existing file - FlashMessages::addMessage(I18N::translate('The media file %1$s could not be renamed to %2$s.', Html::filename($media_file->filename()), Html::filename($file)), 'info'); - $file = $old; + $file_exists = $filesystem->fileExists($old); + + if ($file_exists) { + try { + $filesystem->move($old, $new); + FlashMessages::addMessage(I18N::translate('The media file %1$s has been renamed to %2$s.', Html::filename($media_file->filename()), Html::filename($file)), 'info'); + } catch (FilesystemException | UnableToMoveFile $ex) { + // Don't overwrite existing file + FlashMessages::addMessage(I18N::translate('The media file %1$s could not be renamed to %2$s.', Html::filename($media_file->filename()), Html::filename($file)), 'info'); + $file = $old; + } + } + } catch (FilesystemException | UnableToRetrieveMetadata $ex) { + // File does not exist? } } |
