3

如何使用 PHP 列出 Windows 共享的内容?

$SearchFolder = "\\\\192.168.1.100\\pdfoutput\\";

if (is_dir($SearchFolder))
{
    if ($Directory = opendir($SearchFolder))
    {
        while (($File = readdir($Directory)) !== false)
        {
            if(filetype($SearchFolder.$File) == "file")
            {
                $this->Attachments[] = new Attachment($SearchFolder.$File);
            }
        }
        closedir($Directory);
    }
}

打印(opendir($SearchFolder)); 给出这个错误:

警告:opendir(\192.168.1.100\pdfoutput) [function.opendir]: failed to open dir: No error in C:\Users\gary\Webserver\QuickMail\maildetails.php on line 227

这没有按预期工作。有什么想法吗?

4

3 回答 3

4

在http://uk3.php.net/function.opendir查看用户对 opendir 函数的评论。看起来可能有一些信息会对您有所帮助。具体来说,DaveRandom 的这段代码可以解决您的问题:

<?php
// Define the parameters for the shell command
$location = "\\servername\sharename";
$user = "USERNAME";
$pass = "PASSWORD";
$letter = "Z";

// Map the drive
system("net use ".$letter.": \"".$location."\" ".$pass." /user:".$user." /persistent:no>nul 2>&1");

// Open the directory
$dir = opendir($letter.":/an/example/path")
?>
于 2009-08-16T18:13:26.963 回答
1

我找到了一个很好的替代使用本地网络路径的方法,那就是使用 FTP 服务器。考虑到我还需要显示该目录中的一些图像,这也很有效。我使用的 FTP 服务器非常轻巧,允许从整个 LAN 访问此目录,而不会出现任何安全或权限错误。

$SearchFolder = "ftp://192.168.0.104/PDFOutput/";

if (is_dir($SearchFolder))
{
    if ($Directory = opendir($SearchFolder))
    {
        while (($File = readdir($Directory)) !== false)
        {
                if(filetype($SearchFolder.$File) == "file")
                {
                        $this->Attachments[] = new Attachment($SearchFolder.$File);
                }
        }
        closedir($Directory);
    }
}
于 2009-08-17T13:28:38.767 回答
0

以下过程对我有用。只需将共享位置映射到我们的系统。
如果您使用 Windows 7:单击开始,然后单击计算机,单击映射网络驱动器
如果您使用 Windows 8:打开文件资源管理器单击“计算机”选项卡,然后单击“映射网络驱动器”。通过提及共享驱动器/文件夹,我们可以直接访问内容。

于 2018-08-28T11:23:30.153 回答