【问题标题】:How can I generate a dynamic file name for my PDF File with dompdf?如何使用 dompdf 为我的 PDF 文件生成动态文件名?
【发布时间】: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 如果您的帮助仅显示为评论,我该如何感谢您的帮助?

标签: php filenames dompdf


【解决方案1】:

当您将日期与d/m/year 和 TIME 一起使用时,您可以使用您选择的名称作为唯一编号,这样每个文件名都会有不同的编号..试试这个代码:

  $tym = date('m-d-Y : hi a');
  $filename = ' APPLICATION '.$tym; // YOU CAN CHOOSE YOUR FILE NAME
  $message = Swift_Message::newInstance()
  ->attach(Swift_Attachment::newInstance($pdf_content,  $_POST["username"] . $filename. ".pdf", 'application/pdf')); //

【讨论】:

    猜你喜欢
    • 2015-11-07
    • 2014-01-07
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    相关资源
    最近更新 更多