【发布时间】:2011-10-14 17:21:43
【问题描述】:
我正在使用 dompdf,它似乎进展顺利。
我将生成的 pdf 文件作为电子邮件附件获取。我想知道如何在文件名上附加一个唯一的数字,以便每个接收 pdf 的用户都没有相同的确切文件名。
我目前获取文件的名称并获取我已成功分配的名称,例如 myfile.pdf。
作为测试,我还可以像这样在文件名中附加一个随机数:
$message = Swift_Message::newInstance()
->setSubject('My Subject Text') // Message subject
->setTo(array('me@mydomain.com' => 'MyName')) // Array of people to send to
->setFrom(array('no-reply@mydomain.com' => 'SenderName')) // From:
->setBody($html_message, 'text/html') // Attach that HTML message from earlier
->attach(Swift_Attachment::newInstance($pdf_content, 'myfile'.rand(10,1000).'.pdf', 'application/pdf')); // Attach the generated PDF from earlier
这非常适合发送带有文件名和随机数的 pdf。
但是我怎样才能用更有意义的东西来做到这一点呢?
比如从一个特定的数字开始并为每个提交的文件自动递增?
或者使用基于(或来自)SESSION 的数字?
什么是有意义的最佳实践?
我希望每个文件名都是 myfile_UNIQUENUMBER.pdf(我认为某种类型的自动增量或 SESSION 号最好)
想法?
【问题讨论】:
-
PHP 有一个很好的
uniqid()function 来处理这类事情 -
pdf 中有什么内容?我只问是因为日期/时间对这类事情非常有效。在报告的情况下可以是 pdf 中数据的日期/时间,也可以是创建/运行 pdf 的日期/时间。
-
是的,我认为日期和时间可能有效。无论如何格式化日期和时间?还是它只是写成一串数字,例如:101420111042 // 意思是 10/14/2011 10:42?
-
php.net/date 任何有效的文件名字符都可以使用。
$name='myfile_'.date('m-d-Y_hia)'; -
@Johntahan Kuhn > php.net/date 任何有效的文件名字符都可以使用。 > $name='myfile_'.date('m-d-Y_hia)'; – Jonathan Kuhn 21 分钟前 我不确定您的文本 ('m-d-Y_hia)' 是否是括号外单引号的错字,但您的指导非常有帮助。这工作得很好: ->attach(Swift_Attachment::newInstance($pdf_content, 'myfile_'.date ('m-d-Y_hia').'.pdf', 'application/pdf')); // 附上之前生成的 PDF 发送给我:myfile_10-14-2011_0238pm.pdf 如果您的帮助仅显示为评论,我该如何感谢您的帮助?