单击文件php时文件浏览器不起作用

问题描述

我需要为学校项目制作一个文件浏览器。但是当我点击它们打印文件时,这些文件不起作用。我认为连接文件有问题。有人能帮我吗?这是代码

 <?PHP

if (isset($_GET["dir"])) {
    $path = $_GET["dir"];
} else {
    $path = getcwd();
}

$path = realpath($path);


$all = scandir($path);
$all = array_splice($all,1);

foreach ($all as $file) {
    if (strpos($path,getcwd()) === false) {
        $path = getcwd() . "\\" . $path;
    }

    $fullPath = $path . "\\" . $file;

    if (is_file($fullPath)) {
        echo "<a class='file' href='index.PHP?dir=" . $path . "&file=" . $file . "'>[File] " . $file . "</a><br>";
    } else {
        echo "<a class='dir' href='index.PHP?dir=" . $fullPath . "'>[C:/xampp/htdocs] " . $file . "</a><br>";
    }
}
?>

解决方法

我不明白打印文件是什么意思,如果您的意思是使用浏览器默认显示文件(如图像等),那么您需要使用正确的名称在选项卡中打开文件,但情况并非如此现在。如果文件存在,您正在使用 public int[] sort(int[] unsorted) { int i,j,v; for (i = 1; i < unsorted.length; i++) { v = unsorted[i]; j = i - 1; while (j >= 0 && unsorted[j] > v) { unsorted[j + 1] = unsorted[j]; j--; } unsorted[j + 1] = v; } return unsorted; } ,但我在您的 php 代码中看不到任何处理此问题的方法。

我建议对代码进行两项更改。

第一,请更改

&file=$file

$fullPath = $path . "\\" . $file;

由于 $fullPath = $path . '/' . $file;,php 函数 // 失败

第二,使用 is_file 代替 [C:/xampp/htdocs],这将打印相同的值,但将是特定于操作系统的。