这个问题可能是重复的,但我没有找到这种类型的错误的有效答案。我的代码在不使用ajax的情况下运行良好,但如果使用ajax则会出错。
$this->load->library('m_pdf');
$this->data['title']="Sales Report PDF";
$this->data['description']="Sales report in PDF format";
$data = $this->get_sales_report_for_pdf();
$html=$this->load->view('dashboard/sales_report_pdf',$data, true);
$pdfFilePath ="Salesreport-".time()."-download.pdf";
$pdf = $this->m_pdf->load();
$pdf->WriteHTML($html,2);
$pdf->Output($pdfFilePath, "D");
任何人都可以知道如何处理这个问题吗?
答案 0 :(得分:2)
$this->load->library('m_pdf'); $this->data['title']="Sales Report PDF"; $this->data['description']="Sales report in PDF format"; $data = $this->get_sales_report_for_pdf(); $html=$this->load->view('dashboard/sales_report_pdf',$data, true); $pdfFilePath ="Salesreport-".time()."-download.pdf"; $pdf = $this->m_pdf->load(); $pdf->WriteHTML($html,2); $pdf->Output(FCPATH.$pdfFilePath, "F");
return $pdfFilePath;
在Ajax响应中 location.href = YOURPATH。' filename.pdf';
答案 1 :(得分:0)
请替换
$pdf->Output($pdfFilePath, "D");
到
$pdf->Output($pdfFilePath, "F");
因为要下载D
并且ajax不会为下载文件提供UI,所以请F
保存
和Filepath应该有效
$pdfFilePath ="Salesreport-".time()."-download.pdf";
像
$pdfFilePath =FCPATH."upload/Salesreport-".time()."-download.pdf";
因此它将按名称保存到upload
文件夹中。
注意:您无法通过ajax下载它会出错。