我正在用 html2fpdf 生成一个 pdf 文件。
$pdf = new HTML2FPDF();
$pdf->HTML2FPDF("P","mm","A4");
$pdf->AddPage();
$pdf->WriteHTML($html);
$pdf->output('sample.pdf');
此示例效果很好。但:
输出后如何删除pdf?我只想在我的工具中有链接,用户可以下载 pdf,然后应该在服务器上将其删除。
生成pdf后如何“清理”?
我正在用 html2fpdf 生成一个 pdf 文件。
$pdf = new HTML2FPDF();
$pdf->HTML2FPDF("P","mm","A4");
$pdf->AddPage();
$pdf->WriteHTML($html);
$pdf->output('sample.pdf');
此示例效果很好。但:
输出后如何删除pdf?我只想在我的工具中有链接,用户可以下载 pdf,然后应该在服务器上将其删除。
生成pdf后如何“清理”?
您可以使用 PHP 的文件删除功能,称为unlink()
使用生成的 PDF 文件(或任何文件)的完整路径调用此函数,PHP 将删除该文件。
http://php.net/manual/en/function.unlink.php
您不必在用户下载文件后立即删除该文件。您可以轻松地将所有生成的文件放在一个中央文件夹中,并让 cron 作业执行更通用的清理脚本,只需删除旧文件即可。
一种方法可能是 -
scandir()
。foreach
..filemtime()
。unlink()
.因为您是在 PHP 代码中自己生成 PDF 文件,所以我没有提到权限考虑。这里最好提一下,您的 PHP 必须具有正确的文件系统权限才能对文件系统执行任何操作。您正在创建一个 PDF 文件,因此可以安全地假设您具有对文件系统进行更改的正确权限,但如果您计划unlink()
在其他脚本中使用此功能,请确保您正在处理的文件具有正确的权限集。
如果您不将“F”标志添加到输出函数,则服务器上根本不会存储任何 pdf 文件:
$pdf->output('sample.pdf', 'F'); //stores PDF on server
在您的情况下,脚本本身的行为就像一个实际的 pdf 文件。因此,创建指向脚本的链接就像指向 pdf 的链接一样,只是每次请求脚本时都会创建 PDF。要告诉浏览器它是 PDF,content-type
响应标头必须设置为application/pdf
:
content-type: application/pdf
这样,即使 URL 以.php
. 您可以使用重写引擎使其以 pdf 或其他格式结尾。
发送标头由 fpdf/tcpdf 完成。简而言之:您不必进行任何清理,因为服务器上没有存储 pdf 文件。
如果您想知道名称的含义,请尝试保存 pdf 文件。保存时的推荐名称为 sample.pdf。
参考: