【发布时间】:2018-03-14 14:48:43
【问题描述】:
我有一个发送电子邮件的 Symfony 3.3 联系表。现在我正在尝试向表单添加附件。我在 sendEmail 函数中插入以下行:
->attach($data["attachment"])
...我收到以下错误:
传递给 Swift_Mime_SimpleMessage::attach() 的参数 1 必须实现 接口 Swift_Mime_MimeEntity,实例 Symfony\Component\HttpFoundation\File\UploadedFile 给出
所以我的问题是:如何将 UploadedFile 对象转换为 SwiftMailer 会满意的对象?
====
编辑#1:我试过这个没有成功:
$fullFilePath = $data["attachment"]->getPath() . '/' . $data["attachment"]->getClientOriginalName();
$attachment = \Swift_Attachment::fromPath($fullFilePath);
附加该“附件”只会导致电子邮件未发送,尽管应用程序的行为就像它已发送表单一样。
====
编辑#2:进步!我现在能够得到一个有用的错误。这段代码...
$extension = $data["attachment"]->guessExtension();
if($extension !== 'rtf'){
die('Please give us an rtf file. TODO: Put a better message here!');
}
$newFilePath = '/tmp';
$newFileName = 'temporary.rtf';
$data["attachment"]->move($newFilePath, $newFileName);
... 给我这样的错误:
无法将文件“/tmp/phpnIqXDr”移动到“/tmp/temporary.rtf”()
...这很令人沮丧,因为我知道/tmp 是每个用户都可以写的。
【问题讨论】:
标签: php forms symfony swiftmailer