好的,所以我正在尝试开始托管我自己的文件共享网站,我目前正在使用WAMP服务器具有apache,PHP,mysql等服务器属性。我的根文件夹位于2TB硬盘中,我想列出另一个硬盘中的文件夹/文件。但是当我使用dir函数时,它不会链接到它只列出它们的实际文件。我想允许人们将我的硬盘中的文件下载到客户端计算机。关于如何解决这个问题并链接到实际文件的任何想法?
答案 0 :(得分:0)
您无法直接链接到您网站中没有的文件。
您可以做的是让所有链接都指向一个下载脚本,该脚本带有一个指向该文件的参数。然后该脚本可以使其在内存中工作。
这是我在网上找到的一个例子:
http://www.finalwebsites.com/forums/topic/php-file-download
// place this code inside a php file and call it f.e. "download.php"
$path = $_SERVER['DOCUMENT_ROOT'] . "/path2file/"; // change the path to fit your websites document structure
$fullPath = $path . $_GET['download_file'];
if ($fd = fopen ($fullPath, "r"))
{
$fsize = filesize($fullPath);
$path_parts = pathinfo($fullPath);
$ext = strtolower($path_parts["extension"]);
switch ($ext)
{
case "pdf":
header("Content-type: application/pdf"); // add here more headers for diff. extensions
header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\""); // use 'attachment' to force a download
break;
default:
header("Content-type: application/octet-stream");
header("Content-Disposition: filename=\"".$path_parts["basename"]."\"");
break;
}
header("Content-length: $fsize");
header("Cache-control: private"); //use this to open files directly
while(!feof($fd))
{
$buffer = fread($fd, 2048);
echo $buffer;
}
}
fclose ($fd);
exit;
// example: place this kind of link into the document where the file download is offered:
// <a href="download.php?download_file=some_file.pdf">Download here</a>
答案 1 :(得分:0)
在linux中,我会创建一个从外部硬盘驱动器到webroot文件夹的符号链接,但在windows下看起来你需要创建一个联结目录。
阅读本文,它解释了如何创建它。
http://www.howtogeek.com/howto/windows-vista/using-symlinks-in-windows-vista/
您的目录结构应该看起来像这样
webroot
|- php files
|- externalfiles (dir junction to ext hard drive)
|- sharedfile1
|- sharedfile2