Php 输出文件内容是否与直接访问相同?
我在服务器上有一个名为“file.pdf”的文件,我无法像这样直接访问它:Php 输出文件内容是否与直接访问相同?,php,file,filesystems,file-access,Php,File,Filesystems,File Access,我在服务器上有一个名为“file.pdf”的文件,我无法像这样直接访问它: servername.com/file.pdf, 因为它位于servername.com重定向到的文件夹的上层 我需要使用php获取文件,然后输出,所以它看起来像这样: servername.com/get_file.php?filename=file.pdf 这是我尝试的,但是,它不起作用: <?php $filename = $_GET['filename']; header('Location
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);
?>
有关于如何访问该文件的解决方案吗?在您的“解决方案”中,您又犯了完全相同的错误。您再次尝试通过web根目录(公用文件夹,httpdocs,…)下的HTTP直接访问文件
您已经提出了正确的解决方案,即使用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');