summaryrefslogtreecommitdiff
path: root/app/Http/RequestHandlers/EditMediaFileAction.php
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@gmail.com>2021-03-15 14:05:33 +0000
committerGreg Roach <fisharebest@gmail.com>2021-03-15 15:09:52 +0000
commitf0448b68d9ccb96d481d0f989b8bf9901c324b04 (patch)
treefb39d85245dd7396ade50ce07e20763f83316c1d /app/Http/RequestHandlers/EditMediaFileAction.php
parenta2221dfbfbf1dfbb322e14294e5387499e722805 (diff)
downloadwebtrees-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.php21
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?
}
}