gpt4 book ai didi

php - 链接到本地​​硬盘上的文件

转载 作者:行者123 更新时间:2023-12-02 04:33:09 25 4
gpt4 key购买 nike

我正在尝试将本地 HDD 上的文件夹内容显示为 Web 浏览器中的链接。这就是我获取文件夹内容的方式

$dir = scandir($path);
foreach($dir as $token)
{
if(($token != ".") && ($token != ".."))
{
if(is_dir($path.'/'.$token))
{
$folders[] = $token;
}
else
{
$files[] = $token;
}
}
}
foreach($folders as $folder)
{
$newpath = $path.'/'.$folder;
echo "<a href = tema2.php?cale=$newpath> [ $folder ] </a>" . "<br>";
}
foreach($files as $file)
{
$newpath = $path.'/'.$file;
echo "<a href = file:///$newpath> $file </a>" . "<br>";
}

一切正常,除了文件的链接在按下时什么也不做。我的网络浏览器中显示的链接如下:“file:///C:/folder/test.txt”。尝试过 Firefox、Chrome 和 IE。

最佳答案

如果文件超出 Web 服务器文件夹的范围,它将无法访问该文件以传送该文件。

您可以创建一个文件处理程序来传送文件:

所以改变echo "<a href = file:///$newpath> $file </a>" . "<br>";

echo "<a href = \"fileHandler.php?file=$file\"" . "<br>";

并创建 fileHandler.php 为:

<?php
$file = $_GET['file'];
header('content-type:application/'.end(explode('.',$file)));
Header("Content-Disposition: attachment; filename=" . $file); //to set download filename
exit(file_get_contents($file));
?>

或绕过网络服务器并直接链接到文件(这仅适用于 LAN 或 VPN)

所以改变echo "<a href = file:///$newpath> $file </a>" . "<br>";

echo "<a href ='$_SERVER[HTTP_HOST]/$newpath/$file'>$file</a><br />"

关于php - 链接到本地​​硬盘上的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22592823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com