使用swiftmailer动态获取附件名称

时间:2012-08-09 20:02:45

标签: php swiftmailer

正如标题所说,我想从表单中提取一个输入来更改附件的名称。

当我说出来时:

->attach(Swift_Attachment::newInstance($pdf_content, '$post->name', 'application/pdf'))

它不起作用,但如果我这样叫出它的名字就可以了:

->attach(Swift_Attachment::newInstance($pdf_content, 'design.pdf', 'application/pdf'))

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

a) $post->name很可能不是您认为的那样, b)单引号会让您感到困扰。< / p>

首先,验证$post->name是字符串/文件名(例如 design.pdf ):

echo $post->name;
exit();

然后,一旦你确定它是你所期望的那样,在将它传递给函数时不要使用单引号:

->attach(Swift_Attachment::newInstance($pdf_content, $post->name, 'application/pdf'))

单引号包含的字符串是由PHP按字面意思取得的,因此您传递的所有内容都是$post->name而不是$post->name。如果您希望将字符串解析为包含变量,请使用双引号(..., "$post->name", ...)或根本不使用引号(因为没有其他内容可以传递到那里)。