summaryrefslogtreecommitdiff
path: root/app/Http/RequestHandlers/ImportGedcomAction.php
diff options
context:
space:
mode:
authorGreg Roach <greg@subaqua.co.uk>2022-06-08 15:08:55 +0100
committerGreg Roach <greg@subaqua.co.uk>2022-06-08 15:08:55 +0100
commit8dc9e1f96da7c0b3ce9209d717d871b4c05dad6d (patch)
tree34864bbe9fd35bc5dae3cbdd37d50d5e99aadcef /app/Http/RequestHandlers/ImportGedcomAction.php
parente2741c1845b23e25c308a65e4e564bd2a3e81e36 (diff)
downloadwebtrees-8dc9e1f96da7c0b3ce9209d717d871b4c05dad6d.tar.gz
webtrees-8dc9e1f96da7c0b3ce9209d717d871b4c05dad6d.tar.bz2
webtrees-8dc9e1f96da7c0b3ce9209d717d871b4c05dad6d.zip
Fix: #4425, Fix: #4437 - improve error handling when no GEDCOM file provided
Diffstat (limited to 'app/Http/RequestHandlers/ImportGedcomAction.php')
-rw-r--r--app/Http/RequestHandlers/ImportGedcomAction.php15
1 files changed, 9 insertions, 6 deletions
diff --git a/app/Http/RequestHandlers/ImportGedcomAction.php b/app/Http/RequestHandlers/ImportGedcomAction.php
index 7f6f564d33..724bfac851 100644
--- a/app/Http/RequestHandlers/ImportGedcomAction.php
+++ b/app/Http/RequestHandlers/ImportGedcomAction.php
@@ -36,6 +36,7 @@ use function basename;
use function redirect;
use function route;
+use const UPLOAD_ERR_NO_FILE;
use const UPLOAD_ERR_OK;
/**
@@ -85,22 +86,24 @@ class ImportGedcomAction implements RequestHandlerInterface
if ($source === 'client') {
$upload = $request->getUploadedFiles()['tree_name'] ?? null;
- if ($upload === null || $upload->getError() !== UPLOAD_ERR_OK) {
+ if ($upload === null || $upload->getError() === UPLOAD_ERR_NO_FILE) {
+ FlashMessages::addMessage(I18N::translate('No GEDCOM file was received.'), 'danger');
+ } elseif ($upload->getError() !== UPLOAD_ERR_OK) {
throw new FileUploadException($upload);
+ } else {
+ $this->tree_service->importGedcomFile($tree, $upload->getStream(), basename($upload->getClientFilename()), $encoding);
}
-
- $this->tree_service->importGedcomFile($tree, $upload->getStream(), basename($upload->getClientFilename()), $encoding);
}
if ($source === 'server') {
$basename = basename($params['tree_name'] ?? '');
- if ($basename) {
+ if ($basename === '') {
+ FlashMessages::addMessage(I18N::translate('No GEDCOM file was received.'), 'danger');
+ } else {
$resource = $data_filesystem->readStream($basename);
$stream = $this->stream_factory->createStreamFromResource($resource);
$this->tree_service->importGedcomFile($tree, $stream, $basename, $encoding);
- } else {
- FlashMessages::addMessage(I18N::translate('No GEDCOM file was received.'), 'danger');
}
}