我的网站是用PHP构建的,我整合了条带支付。如果用户通过条带付款成功,那么我需要打开托管的PDF文件 在运行代码的同一台服务器上。
以下是我用来打开PDF文件的代码:
$file = 'test.pdf';
$filename = 'test.pdf';
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('Accept-Ranges: bytes');
@readfile($file);
我不希望直接访问test.pdf文件。因此,如果我将test.pdf的权限更改为777,则代码会运行并打开PDF文件,但它也允许任何人通过直接链接打开文件。如果我更改权限以便访问此文件仅限于代码文件,那么它不会打开pdf文件。如何实现这一点,以便在成功完成条带付款后打开PDF文件,而不是通过直接URL。
答案 0 :(得分:1)
您可以通过.htaccess(或虚拟主机配置)阻止文件直接访问,并使用“全部拒绝”。 ' readfile()'如果服务器用户(例如,www-data)具有pdf
的读取和执行权限,则将起作用