符号链接目录

时间:2012-12-13 22:23:13

标签: php download symlink

我可以在我的符号链接上看一眼吗?

我正在尝试从一个目录下载文件,而该文件实际存在于另一个目录中。

我有实际的文件和符号链接在单独的子目录中,但都存在于公共html中(两者都可以通过Web访问)。

我已经通过直接转到该文件验证了我的(共享Linux)服务器上的文件和文件位置。

正在创建链接(我使用了readlink,is_link和linkinfo),当我进入FTP时,我可以看到它。

我相信我可能只是误解了目录结构。

我把文件放在这里:./ testdownload /

我把符号链接放在这里:./ testDelivery /

<?php
$fileName = "testfiledownload.zip";//Name of File
$fileRepository = "./testdownload/";//Where the actual file lives
$downloadDirectory = "./testDelivery/";//Where the symlink lives
unlink($downloadDirectory . $fileName);  // Deletes any previously exsisting symlink (required)
symlink($fileRepository . $fileName, $downloadDirectory . $fileName); 
$checkLink = ($downloadDirectory . $fileName);
if (is_link($checkLink))
{
    echo ("<br>Symlink reads: " .readlink($checkLink) . "<br>");
    echo ("<br>LinkeInfo reads: " . linkinfo($checkLink));
}
?>
<p><a href="<?php echo ("/testDelivery/" . $fileName); ?>"</a>SymLink</p>
<p><a href="<?php echo ("/testdownload/" . $fileName); ?>"</a>regular link</p>

一切看起来都对我......但链接不起作用。 帮助

最终,我会将源数据放在公共区域之外......这仅用于测试。

(我正在尝试找到一个更好的下载解决方案,而不是因为连接不良而导致fread失败。(200-400MB文件))

1 个答案:

答案 0 :(得分:0)

我的问题(似乎)没有提供符号链接的绝对路径。

我已将下面的绝对路径添加到上面的相同代码中,以提供工作副本:

<?php
$absolutepath = ( $_SERVER['DOCUMENT_ROOT']);
$fileName = "testfiledownload.zip";//Name of File
$fileRepository = "/testdownload/";//Where the actual file lives
$downloadDirectory = "/testDelivery/";//Where the symlink lives
unlink($absolutepath .$downloadDirectory . $fileName);  // Deletes any previously exsisting symlink (required)
symlink($absolutepath . $fileRepository . $fileName, $absolutepath. $downloadDirectory . $fileName); 
$checkLink = ($absolutepath . $downloadDirectory . $fileName);
if (is_link($checkLink))
{
    echo ("<br>Symlink reads: " .readlink($checkLink) . "<br>");
    echo ("<br>LinkeInfo reads: " . linkinfo($checkLink));
}
?>
<p><a href="<?php echo ("/testDelivery/" . $fileName); ?>"</a>SymLink</p>
<p><a href="<?php echo ("/testdownload/" . $fileName); ?>"</a>regular link</p>

这个原始帖子是重复的(虽然我直到现在才看到它) Create a valid symlink for PHP file (然而,针对这个问题给出的大多数答案都是错误的 - 但是原始的海报发现了它,并且它也适用于我)