无法通过download-script访问Alias目录中的文件

时间:2013-07-27 22:47:50

标签: php xampp

我正在开发一个下载脚本atm。 php文件位于xampp htdocs目录中,而包含文件的文件夹位于外部HDD上。

我已经为外置硬盘设置了别名:

<Directory "h:/Filme">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
Order allow,deny
Allow from all
</Directory> 
Alias /filme "H:/Filme"

这是下载脚本:

<?php

$download_dir = "filme/";
$files = array(
                "1" => "300.avi",
                "2" => "asdf.txt",
                "3" => "doc.pdf",
                "4" => "bild3.jpg",
              );
$file = $download_dir.$files[$_GET['id']];

header("Content-Type: x-type/subtype");
header("Content-Length: ".filesize($file));
header("Content-Disposition: attachment; filename=".$files[$_GET['id']]);

readfile($file);
?> 

通过以下方式下载:

<a href="download.php?id=2">asdf.txt</a><BR>

现在,问题如下: 我可以通过在浏览器的地址栏中输入 localhost / filme / asdf.txt 来访问文件,例如asdf.txt。 但是,我可以使用下载脚本下载的文件说:

 <br />
<b>Warning</b>:  filesize(): stat failed for filme/asdf.txt in <b>C:\Program Files\xampp\htdocs\download.php</b> on line <b>26</b><br />
<br />
<b>Warning</b>:  readfile(filme/asdf.txt): failed to open stream: No such file or directory in <b>C:\Program Files\xampp\htdocs\download.php</b> on line <b>32</b><br />

我真的不知道如何修复这个O.o

TY答案等&lt; 3

1 个答案:

答案 0 :(得分:1)

HTTP和文件系统中的路径结构存在差异。 PHP对HTTP访问的已定义别名一无所知。

您必须以文件系统理解的方式定义文件的路径。这可能意味着使用

$download_dir = "H:/Filme/";