2012-08-28 64 views
1

我有一些问题试图让SwiftMailer附加一个我用FPDF创建的文件。基本上我有一个名为createPDF.php的页面,它是根据URL中的ID号动态生成的。此页面设置为使用$ pdf-> Output(“filename.pdf”,I);以内联方式输出PDF。我想要做的就是能够通过简单地调用我的createPDF.php?id = xxx链接将此文件附加到使用SwiftMailer从另一个页面发送的电子邮件。PHP Swift梅勒附加FPDF问题

从哪里我想从,一切正常发送电子邮件,但附件的PHP页面。它附加了一些东西,但不是我想要的东西,在我的本地机器上的PDF查看器中不可见。具体到安装文件的行是:

- >连接(Swift_Attachment :: fromPath( 'createPDF.php来ID = XXXX?'))

这并不工作,但肯定的是,它必须能够而无需通过FPDF将文件保存在我的Web服务器上。

这可能吗?如果是这样,怎么样?

谢谢!

回答

0

好的,所以我只是想通了。

基本上我做了一个新的PHP文件,大部分我createPDF.php来的文件作为一个功能,只需在两个变量传递给函数作为我的$ id和$输出变量。 $ output只是FPDF输出文件的方式 - 内联等等......然后我设置函数返回FPDF的输出。在我的createPDF.php文件中,我简单地调用传递$ id和'​​I'作为变量的函数,以便在浏览器中内联显示正确的PDF。

在我sendEmail功能,我只是传递的$ id和“S”并将其设置为一个变量$内容,这是我进入SwiftMailer作为附件。

工程很好。

感谢您的帮助!

0

这里的问题是Swiftmailer获取文件的内容,它不执行你的PHP文件。所以你的PDF的内容将是createPDF.php中的代码。

为什么你不能先保存文件?您应该能够安全并在您的电子邮件发送时将其删除。

<?php 
$id = "xxx"; 
$fileName = "tmp/".sha1(time()+mt_rand(0,99999999)); 
include "createPDF.php"; //saves it to $fileName 
->attach(Swift_Attachment::fromFile($fileName)->setFilename('blaha.pdf')); 
unlink($fileName); 
+0

我不知道我是否正确理解您的代码。它不适用于我,我没有看到你在哪里指定将在createPDF.php?id = xxx URL中的$ id变量。 如果我能救createPDF.php来ID = XXX文件暂时或基于ID可变的东西,动态 - 的ID需要根据我需要发送该PDF改变。然后在发送电子邮件后,删除此临时文件。如果我能做到,那就行了。 另请注意,我从我的服务器上的另一个文件发送电子邮件。 sendemail.php位于不同的文件夹中。 createPDF.php位于/文件夹中。 – shootingrubber

+0

你应该编辑你的createPDF.php来不设置$ _GET的id,但只需使用$ id,并确保它保存到$ filename。 –

+0

我做到了,但仍然无法工作。我的代码中有更多的错误。您能否告诉我一个如何格式化createPDF.php页面和我的其他功能(在另一个页面中)发送电子邮件的例子?我基本上把它设置在另一个PHP文件中的sendEmail()函数中。 我还是希望能够有createPDF.php来可以,如果有人点击,从他们的个人资料中的链接以显示PDF内嵌。 所以我有: createPDF.php 另一个带有函数sendEmail(){}的PHP文件 – shootingrubber