Свойство baseName
в yii\web\UploadedFile
содержит исходное имя файла, но файл отсутствует на сервере под его исходным именем. Вам необходимо использовать свойство tempName
, которое содержит путь к загруженному файлу на сервере.
Ваше значение для каждого цикла, который прикрепляет файлы к почте, должно выглядеть следующим образом:
foreach ($file_attachment as $file) {
$filename = $file->baseName. '.' . $file->extension;
$mail->attach(
$file->tempName,
['fileName' => $filename]
);
}
Это также может бытьХорошая идея проверить hasError
свойство yii\web\UploadedFile
перед попыткой прикрепить файл, чтобы увидеть, была ли загрузка успешной.
Также убедитесь, что вы установили 'enctype' => 'multipart/form-data'
в параметрах формы, когда выне используйте ActiveForm
с ActiveField::fileInput()
, иначе файлы могут быть не загружены.