【发布时间】:2013-05-20 07:50:30
【问题描述】:
我正在尝试将 pdf 保存到磁盘。
我使用Dompdf和Codeigniter如下:
$this->load->helper('dompdf','file');
$this->load->helper('file');
$saveTo = './labels';
$data['id'] = $this -> uri -> segment(3);
$data['no_of_prints'] = $this -> uri -> segment(4);
$labelname = "Label". $data['id'] ."-". $data['no_of_prints'] . ".pdf";
$html = $this->load->view('label_view', $data, TRUE);
file_put_contents($saveTo."/".$labelname, pdf_create($html, $labelname));
虽然标签名被正确生成。保存到磁盘的文件读取 0 字节,正如预期的那样,我收到了 Adobe Reader cannot open this file ... 错误。
我还使用fancybox 2.0 弹出pdf,当我右键单击弹出窗口时,(pdf 不显示,我猜是pdf 插件问题)我可以Save as 一个可读的pdf,即不是 0 字节。
应用程序自动将 pdf 保存到磁盘很重要。如何将可读的 pdf 保存到磁盘?
【问题讨论】:
-
文件是否被写入服务器?您是否尝试过使用绝对系统路径作为文件位置?例如。 $save_to = $_SERVER["DOCUMENT_ROOT"] 。 '/labels/'.$labelname.'.pdf';
-
文件被写入根目录下的
labels文件夹,只是0字节,pdf阅读器无法打开。 -
您应该分部分进行调查。首先,查找来自 PHP 的任何错误或警告。其次,检查以确保
$html已填写?您可以将其回显以进行检查。第三,返回pdf_create()的结果,这样你就可以确保它返回了一些东西。如果这些都不起作用,您可能需要检查您的 dompdf 配置或深入使用 dompdf 的扩展。 -
感谢@BrianS 单独检查了各个部分,使用了下面的选定答案。
标签: codeigniter pdf dompdf