输出文件内容与直接访问相同?

时间:2015-10-04 14:17:45

标签: 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: ../seedbox/downloads/knygos' . $filename);
?>

有关如何访问该文件的任何解决方案?

1 个答案:

答案 0 :(得分:2)

在你的&#34;解决方案&#34;你再次犯同样的错误。您再次尝试通过位于Web根目录下的HTTP直接访问文件(公用文件夹,httpdocs,...)。

您已经在提出正确的解决方案,即使用PHP获取文件并提供服务但是您没有这样做。您有两个主要解决方案:

将文件移至公共位置

在这里,您可以使用PHP动态地永久性地将文件位置更改为mysite.com/downloads/file.pdfcopy

copy('../files/file.pdf', 'downloads/file.pdf');

即时提供文件

header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=file.pdf");

readfile('../files/file.pdf');