PHP:使用 DOMPDF 自动将动态 PDF 保存到远程服务器
Posted
技术标签:
【中文标题】PHP:使用 DOMPDF 自动将动态 PDF 保存到远程服务器【英文标题】:PHP: Automatically Saving a dynamic PDF to the remote server using DOMPDF 【发布时间】:2013-01-28 20:29:27 【问题描述】:我正在使用 dompdf 库创建基于表格的 PDF,我可以在线查看,也可以将其下载到用户选择的文件夹中。
但我想做的是让它保存到远程服务器(我不需要将它保存到用户 PC),就像一个自动上传脚本,它会创建文件然后将它上传到远程服务器,所以我以后可以在我的应用程序中使用它。
是否可以指向 $_FILES["file"] 脚本,这样可以获取创建 pdf 的 php 页面,然后从那里上传。
【问题讨论】:
【参考方案1】:你可以做一件我正在为我的应用程序做的事情。例如,首先在您的服务器的根目录下创建一个文件夹。然后使用 chmod 命令更改对该文件夹的读写权限。
然后获取$html
字符串中的所有代码。
$dompdf->load_html($html);
$dompdf->render();
$pdf = $dompdf->output();
$file_location = $_SERVER['DOCUMENT_ROOT']."app_folder_name/pdfReports/".$pdf_name.".pdf";
file_put_contents($file_location,$pdf);
pdfReports
是我为保存所有 pdf 文件而创建的文件夹。您可以更改为您的文件夹名称。
【讨论】:
感谢 file_put_contents 解决了这个问题,我现在在我的简单页面上工作,让它在我更复杂的动态页面上工作,但也要感谢 Stephan、kufudo 和 Vincent Kelleher跨度> 我只需要创建一个页面,但是表格会很长,但是考虑使用 PHPExcel 来完成繁重的工作,然后使用 dompdf 进行转换,我现在正在这样做,只需要实现相同的字段上传代码到它,它应该全部完成。 你有空谈5分钟吗 让我们continue this discussion in chat【参考方案2】:引用自 PHP 手册:
如果启用了fopen wrappers,则可以使用此功能将URL用作文件名。有关如何使用的详细信息,请参阅fopen() 指定文件名。请参阅Supported Protocols and Wrappers 链接到有关各种包装器具有哪些能力的信息, 关于它们的使用说明,以及关于它们的任何预定义变量的信息 可以提供。
来源:http://php.net/manual/en/function.file-put-contents.php
【讨论】:
【参考方案3】:是否可以直接在服务器上创建PDF,并让客户在需要时下载它?如果是这样,您可以使用 wkhtmltppdf 在服务器上将任何 HTML 页面转换为 PDF 并保存和/或将其流式传输到客户端。
http://code.google.com/p/wkhtmltopdf/
【讨论】:
【参考方案4】:你不能使用FTP functions of PHP 吗?
【讨论】:
以上是关于PHP:使用 DOMPDF 自动将动态 PDF 保存到远程服务器的主要内容,如果未能解决你的问题,请参考以下文章