【问题标题】:Why is PHP failing to copy a file to a shared folder in a LAN?为什么 PHP 无法将文件复制到 LAN 中的共享文件夹?
【发布时间】:2014-03-03 04:36:54
【问题描述】:

我需要将文件从一台计算机复制到另一台连接到局域网的计算机。我有那两台机器的IP地址。我已经使用这样的代码来实现它,

$file = 'file.text';// inside htdocs folder
$newfile = '\\\\192.168.1.15\\htdocsfolder\\';
if ( copy($file, $newfile) ) {
    echo "Copy success!";
}else{
    echo "Copy failed.";
}

但复制失败。如何调试,为什么文件没有复制到另一台计算机的 htdocs 文件夹?我是否需要更改两台计算机上的共享访问权限?

请帮忙。 谢谢

【问题讨论】:

    标签: php copy samba network-shares


    【解决方案1】:

    您似乎在 Windows 机器上。以下是需要注意和检查的几件事(它们是同一主题的变体):

    1. 如果这是一个计划任务/批处理作业,请尝试从终端执行它并检查您可能遇到的任何错误(注意相对路径):

      C:\> path-to-php script.php

    2. 否则,如果可以,请以网络服务器的用户身份运行它并查看以下内容:

      • Webserver 进程需要拥有对\\192.168.1.15\htdocsfolder 的写访问权限和对htdocs folder 的读访问权限。
      • 检查您的网络服务器进程运行的用户。使用您最喜欢的进程/任务/服务管理器检查确切的用户名,并查看该用户是否具有所需的访问模式。
      • 如果您在 Active Directory 环境中,请授予对上述用户名的访问权限
      • 如果 OTOH 您在 LAN 中,请确保用户名存在(是有效用户)并且在两台计算机上具有相同的密码。
      • 如果您这样做正确,则不需要所有人的权限(通常是一件坏事)
      • 不要选择 MS 和 Windows,但请确保“管理我的计算机”->“系统工具”->“共享文件夹”as specified by Microsoft 中的共享和权限

    调试很难,你必须自己做很多进一步的研究,Google 和 SO 是你的朋友。

    【讨论】:

      【解决方案2】:

      请检查执行 php 脚本的用户是否有权访问远程文件系统。 如果在 Linux 上执行脚本,则它对挂载远程共享很有用。 补充一下,您的代码在我的情况下运行良好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-18
        • 1970-01-01
        相关资源
        最近更新 更多