tcpdf組件目前應用得非常廣泛,但是對於如何把生成的pdf文件自動保存在服務端卻很少有人提及。讓我們先來看看標准輸出代碼:
//服務器存檔模式$pdf->Output('output.pdf','F');
實際上這段代碼經常會拋出一個
TCPDF ERROR: Unable to create output file: output.pdf
的錯誤。如果我們切換成其他模式,一點問題都沒有,例如:
//下載模式
$pdf->Output('output.pdf','D');
//瀏覽器模式
$pdf->Output('output.pdf','I');
解決方法其實很簡單,在Output前添加一個函數
ob_clean(),代碼如下:
//服務器存檔模式
ob_clean();
$pdf->Output('output.pdf','F');
//如果需要自定義路徑,則添加根目錄地址
//服務器存檔模式
ob_clean();
$pdf->Output($_SERVER['DOCUMENT_ROOT'] .'output.pdf', 'F');
//存檔在根目錄
$pdf->Output($_SERVER['DOCUMENT_ROOT'].'/MyFolder/output.pdf', 'F');
//存檔在自定義文件夾中;
當然還有一種解決方案,在pdf文檔生成前,先添加ob_start(),在Output輸出前再加ob_end_clean();也能做到服務器存檔的效果。