我在服务器上有一个名为'file.pdf'的文件,我不能像这样直接访问它:servername.com/file.pdf
,因为它在servername。com重定向到的文件夹的上层
我需要使用php获取文件,然后输出,所以它看起来像这样:servername.com/get_file.php?filename=file.pdf
这是我尝试过的,然而,它不起作用:
<?php
$filename = $_GET['filename'];
header('Location: ../seedbox/downloads/knygos' . $filename);
?>
有什么办法可以访问这个文件吗?
在你的"解决方案"中,你又犯了完全相同的错误。您再次尝试通过HTTP直接访问文件,该文件位于您的web根目录(公共文件夹,httpdocs,…)。
你已经提出了正确的解决方案,即用PHP获取文件并提供服务,但你没有这样做。对于这个问题,有两个主要的解决方案:
将文件移动到公共位置
在这里,你可以永久地将文件位置更改为mysite.com/downloads/file.pdf
之类的东西,或者用PHP动态地复制它:
copy('../files/file.pdf', 'downloads/file.pdf');
动态提供文件
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=file.pdf");
readfile('../files/file.pdf');