我目前正在使用wkhtmltopdf生成pdf文件,我想链接最近生成的文件供用户下载,但在用户完成会话后删除它们。无论如何都没有在服务器上生成文件的情况下完成此任务吗?
答案 0 :(得分:1)
<?php
exec("/path/to/binary/wkhtmltopdf http://www.google.com /location/test.pdf");
$file = "/location/test.pdf";
$pdf = file_get_contents($file);
header('Content-Type: application/pdf');
header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
header('Pragma: public');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Content-Length: '.strlen($pdf));
header('Content-Disposition: inline; filename="'.basename($file).'";');
ob_clean();
flush();
echo $pdf;
unlink($file);
?>
可能存在文件未被删除的问题,因此,我会添加一个用于删除旧文件的cron作业。