如何使用PHP获取远程系统文件?

时间:2009-03-12 13:16:42

标签: php javascript

我正在做一个项目,我想从远程系统通过LAN连接访问文件夹。

从那里我有一个下拉列表。当我选择远程系统驱动器号(例如:c:,d :)时,该文件夹中的相应文件将显示在我的系统中。

有没有这方面的教程?

我试过这个,但它仅适用于本地系统,而且我无法打开相应的文件。

<html>
    <head>
        <title>Drive contents</title>
    </head>
    <body>
    </body>
    <?php // Php starts here
    $myDirectory = opendir("C:\Dream");
    $path = "c:";
    // get each entry
    while($entryName = readdir($myDirectory)) {
        $dirArray[] = $entryName;
    }
    // close directory
    closedir($myDirectory);

    //    count elements in array
    $indexCount = count($dirArray);
    Print ("$indexCount files<br>\n");

    // sort 'em
    sort($dirArray);
    // print 'em
    // loop through the array of files and print them all
    for($index=0; $index < $indexCount; $index++) {
        if (substr("$dirArray[$index]", 0, 1) != "."){ // don't list hidden files
            print("<a href=\"$dirArray[$index]\">$dirArray[$index]</a>");
            echo "<br>";
        }
    }
?>
</html>

3 个答案:

答案 0 :(得分:1)

您的PHP脚本在哪里运行?只是为了更好地理解,你的脚本在哪里?脚本是否与远程文件在同一台机器上运行,或者脚本位于不同的位置?

无论如何,对于这两种情况,你应首先检查php safe_mode指令是打开还是关闭,以及open_basedir指令的值,因为它们可以阻止你访问某些目录。

但是如果脚本位于不同的服务器中,您还应该检查远程服务器目录的权限,并验证php.ini中的allow_url_fopen指令是否设置为“On”。

答案 1 :(得分:0)

查看php stream functions和功能glob

$myDirectory = opendir("Y:\\logs");

流功能可以打开远程目录

\\smbserver\share\path\to\winfile.ext

答案 2 :(得分:0)

而不是http://前缀,请尝试在ahrefs中使用file:///前缀