From 4e4b4fb893adf3d673b6f101695dcca2dd67ee23 Mon Sep 17 00:00:00 2001 From: Iwona Just Date: Thu, 7 Mar 2024 09:35:08 +0000 Subject: [PATCH 1/2] single attachment file validation --- src/Mailer.php | 4 ++++ src/controllers/SendController.php | 2 +- src/models/Submission.php | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Mailer.php b/src/Mailer.php index e8a3654..e11cbc9 100644 --- a/src/Mailer.php +++ b/src/Mailer.php @@ -70,6 +70,10 @@ public function send(Submission $submission, bool $runValidation = true): bool if ($submission->attachment !== null) { $allowedFileTypes = Craft::$app->getConfig()->getGeneral()->allowedFileExtensions; + if (!is_array($submission->attachment)) { + $submission->attachment = [$submission->attachment]; + } + foreach ($submission->attachment as $attachment) { if (!$attachment) { continue; diff --git a/src/controllers/SendController.php b/src/controllers/SendController.php index d263d5f..bc446b4 100644 --- a/src/controllers/SendController.php +++ b/src/controllers/SendController.php @@ -47,7 +47,7 @@ public function actionIndex() if (is_array($_FILES['attachment']['name'])) { $submission->attachment = UploadedFile::getInstancesByName('attachment'); } else { - $submission->attachment = [UploadedFile::getInstanceByName('attachment')]; + $submission->attachment = UploadedFile::getInstanceByName('attachment'); } } diff --git a/src/models/Submission.php b/src/models/Submission.php index 750b85d..2384974 100644 --- a/src/models/Submission.php +++ b/src/models/Submission.php @@ -39,8 +39,8 @@ class Submission extends Model public $message; /** - * @var UploadedFile[]|null[]|null - * @phpstan-var array|null + * @var UploadedFile|UploadedFile[]|null[]|null + * @phpstan-var UploadedFile|array|null */ public $attachment; From e995b7a6aa03158219abdb8764e5343a38130595 Mon Sep 17 00:00:00 2001 From: brandonkelly Date: Mon, 11 Mar 2024 15:24:39 -0700 Subject: [PATCH 2/2] Release note [ci skip] --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b0c8d7f..f959e2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Release Notes for Contact Form +## Unreleased + +- Fixed a bug where it wasn’t possible to upload a single file with the `attachment` param. ([#254](https://github.com/craftcms/contact-form/issues/254)) + ## 2.5.2 - 2023-03-16 - Added translations for `Email` and `Name`. ([#235](https://github.com/craftcms/contact-form/issues/235))