我使用TCPDF生成一些PDF文件并将其保存在PC上。但是它保存在我的网站文件夹所在的服务器上。
我需要将文件保存到PC。当我在本地服务器(OpenServer)上工作时,其工作正常。
路径在$ _POST中设置,因为我使用AJAX生成pdf
如何解决?
代码:
require_once('tcpdf/tcpdf.php');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetCreator('God');
$pdf->SetAuthor('God');
$pdf->SetTitle('Contract');
$pdf->SetSubject('Contract');
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set some language-dependent strings (optional)
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
require_once(dirname(__FILE__).'/lang/eng.php');
$pdf->setLanguageArray($l);
}
$pdf->setFontSubsetting(true);
$pdf->SetFont('dejavusans', '', 14, '', true);
$pdf->AddPage();
$pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal'));
ob_start();
include "page1.php";
$content = ob_get_clean();
$html = $content;
$pdf->writeHTML($html, true, false, true, false, '');
$pdf->AddPage();
ob_start();
include "page2.php";
$content = ob_get_clean();
$html = $content;
$pdf->writeHTML($html, true, false, true, false, '');
$pdf->AddPage();
ob_start();
include "page3.php";
$content = ob_get_clean();
$html = $content;
$pdf->writeHTML($html, true, false, true, false, '');
$pdf->AddPage();
$dirname = $_POST['dirname'];
$path = $_POST['path'] . $dirname . '\ ';
mkdir($path, 0700);
$filename = $_POST['filename'] . '.pdf';
$pdf->Output($path . $filename, 'F');
答案 0 :(得分:1)
在最后一行中,使用选项“ D”代替“ F”:
$pdf->Output($path . $filename, 'F');
如文档中所述,
D:发送到浏览器并强制使用给定名称下载文件 按名称。
F:使用名称给定的名称保存到本地文件(可以 包括路径)。