输出文件内容和直接访问一样?
Output file content same as direct access?
我在服务器上有一个名为 '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);
?>
关于我如何访问该文件的任何解决方案?
在您的 "solution" 中,您又犯了完全相同的错误。您再次尝试通过 HTTP 直接访问文件,该文件位于您的网络根目录下(public 文件夹、httpdocs、...)。
您已经提出了正确的解决方案,即使用 PHP 获取文件并提供服务,但您没有这样做。您有两个主要的问题解决方案:
将文件移动到 public 位置
在这里您可以将文件位置永久更改为 mysite.com/downloads/file.pdf
或 copy 之类的位置 PHP:
copy('../files/file.pdf', 'downloads/file.pdf');
即时提供文件
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=file.pdf");
readfile('../files/file.pdf');
我在服务器上有一个名为 '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);
?>
关于我如何访问该文件的任何解决方案?
在您的 "solution" 中,您又犯了完全相同的错误。您再次尝试通过 HTTP 直接访问文件,该文件位于您的网络根目录下(public 文件夹、httpdocs、...)。
您已经提出了正确的解决方案,即使用 PHP 获取文件并提供服务,但您没有这样做。您有两个主要的问题解决方案:
将文件移动到 public 位置
在这里您可以将文件位置永久更改为 mysite.com/downloads/file.pdf
或 copy 之类的位置 PHP:
copy('../files/file.pdf', 'downloads/file.pdf');
即时提供文件
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=file.pdf");
readfile('../files/file.pdf');