1

我在 Windows 7 上有 php,我正在尝试连接到 Linux 上的 Samba 共享文件夹,但没有成功。

我正在使用这段代码:

// Map the drive
system('net use Y: "\\\\linuxIPaddress\Shared_folder password /user:username /persistent:no>nul 2>&1');
// Open the directory
$dir = "Y:/TMP";
if (is_dir($dir)) {
if (opendir($dir)) {
    print "able to access directory tree.";
}
} else {
print "not access tree.";
}
4

2 回答 2

1

我找到了使用此代码进行连接的解决方案

$sharename = '\\\\LinuxIPAddress\Shared_folder';
$username = 'username';
$password = 'password';
$letter = 'Z:';    

if (!is_dir($letter . "/TMP")) {
    $WshNetwork = new COM("WScript.Network");
    $WshNetwork->MapNetworkDrive($letter, $sharename, FALSE, $username, $password);
}

并且工作完美

于 2013-07-02T13:05:22.207 回答
0

这更像是评论,但我还没有足够的声誉发表评论,所以:@DanielMiovski 的解决方案也对我有用。一旦我将它映射到脚本中,我就能够操作我想要的文件。但是,我遇到了一个问题。在 Windows 10 上,一旦脚本结束,驱动器就不会从我的网络驱动器中删除。我无法通过资源管理器或命令提示符手动断开它,因为:“网络连接不存在。” 我在互联网上搜索了许多解决方案,最后让它消失了,但为了这么简单的事情付出了很多努力。我仍然想在我的脚本中使用这个代码,因为它是唯一对我有用的 php smb 解决方案。我找到了解决这两个问题的方法。使用上面的@Daniel Miovski 的脚本,但最后添加以下行:

system('net use Z: /delete /y');

这会在脚本完成操作后立即删除网络驱动器。从那以后,我再也没有遇到过这种麻烦。

只是想我会发布这个,以防其他人遇到同样的问题。

于 2017-05-15T14:53:11.653 回答