【问题标题】:I'm trying to connect from windows to Samba Shared folder on linux using php我正在尝试使用 php 从 Windows 连接到 Linux 上的 Samba 共享文件夹
【发布时间】:2013-07-02 00:10:16
【问题描述】:

我在 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.";
}

【问题讨论】:

    标签: php linux windows samba


    【解决方案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);
    }
    

    并且工作完美

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-11
        • 1970-01-01
        • 1970-01-01
        • 2011-11-08
        • 2022-06-28
        • 2010-10-24
        • 1970-01-01
        相关资源
        最近更新 更多