【发布时间】:2018-03-13 09:00:52
【问题描述】:
我有一种情况,比如创建多个 pdf 文件并下载为 zip 文件。
我试过下面的代码
function downloadZip()
{
if ($this->input->post('btn_submit'))
{
$data = array(
'results' => $this->Mdi_download_invoices->download_pdf_files($this->input->post('client_id'))
);
foreach ($data['results'] as $d)
{
$mpdf = new \Mpdf\Mpdf();
$html = $this->load->view('download_all_invoices/pdf',$d,true);
$mpdf->WriteHTML($html);
$mpdf->Output(); //this will create a pdf file in next tab
$this->load->library('zip');
$this->zip->add_data();
$this->zip->archive('/var/www/my_backup.zip');
$this->zip->download('my_backup.zip');
}
}
如何将所有 pdf 文件存储在数组中??
【问题讨论】:
-
您可以通过为
Output方法提供放置位置来将PDF 保存到文件中。然后将文件添加到 zip 中? -
@JonStirling 感谢您的回答,但是如何通过循环保存多个 pdf 文件??
-
你已经在这样做了,只是没有保存它们,只是确保为每个文件指定一个唯一的名称。
-
@JonStirling 我尝试了你所说的,但它创建了唯一的单个文件 $mpdf->Output($d->invoice_id, \Mpdf\Output\Destination::DOWNLOAD);
-
为什么加
\Mpdf\Output\Destination::DOWNLOAD!?您需要在本地文件系统上将其添加到 zip。您还应该将一些 zip 功能移出循环,下载应该在循环之后,其余的应该在之前,然后 `add_data 与您生成的 pdf 的文件路径。
标签: php codeigniter zip mpdf