2014-03-27 3 views
1

Я довольно новичок в Yii. Я использую расширение YiiMail для отправки писем. Я могу отправлять письма, но не могу отправлять вложения с ним.Добавить ссылку для отправки письма в Yii

У меня есть следующий код, но теперь я знаю, что именно означает это имя tempName?

mycontroller-

$uploadedFile = CUploadedFile::getInstanceByName('filename'); // get the CUploadedFile 
$uploadedFileName = $uploadedFile->tempName; // will be something like 'myfile.jpg' 
$swiftAttachment = Swift_Attachment::fromPath($uploadedFile); // create a Swift Attachment 
$this->email->attach($swiftAttachment); // now attach the correct type 

ответ

2

Условный вы загружаете файл (например, c:\path\file\myfile.jpg), если временно хранится на сервере в папке temporarry с временным именем (например /tmp/zxhjkqwf.tmp). CUploadedFile обертывает все функции, необходимые для доступа к файлу и управления ими. Таким образом, tempname будет путь к вашему файлу на сервере. Я думаю, вы должны попытаться изменить код lioke это:

$uploadedFile = CUploadedFile::getInstanceByName('filename'); // get the CUploadedFile 
$uploadedFileName = $uploadedFile->tempName; // will be something like 'myfile.jpg' 
$swiftAttachment = Swift_Attachment::fromPath($uploadedFileName); // create a Swift Attachment from the temporary file 
$this->email->attach($swiftAttachment); // now attach the correct type 

Смотреть подробнее в Documentation

+0

Ладно спасибо! Но это дает мне ошибку как «Пытаться получить свойство не-объекта», которое указывает на вторую строку в приведенном выше коде. – user

+1

Так что, возможно, что файл не был загружен, поэтому вы должны проверить, правильно ли загрузилась загрузка. – Asped

+0

. Тот же код, который я написал выше, я не понимаю, где я ошибся – user

Смежные вопросы