【问题标题】:Using PHP's fopen in windows on a network drive在网络驱动器上的 windows 中使用 PHP 的 fopen
【发布时间】:2012-01-31 11:13:27
【问题描述】:

我有以下代码:

$file_name = "1234";
$filename = "L:\\videoette_converter\\batch_files\\".$file_name.'.bat';
if (!$handle = fopen($filename, 'a')) {
     echo "Cannot open file ($filename)";
     exit;
}

我从该代码中得到以下错误:

警告:fopen(L:\videoette_converter\batch_files\1234.bat) [function.fopen]:打开流失败:没有这样的文件或目录 C:\wamp\www\videoette_converter\index.php 在第 47 行

和我的 php 中的调试行

无法打开文件(L:\videoette_converter\batch_files\1234.bat)

但是,L:\videoette_converter\batch_files 文件夹确实作为映射驱动器存在,并且我已授予“所有人”完全权限。可能是什么问题?

【问题讨论】:

  • 也许 PHP 手册上的这篇文章可能对您有所帮助:php.net/manual/en/function.fopen.php#83138
  • 干杯。将路径更改为"\\\\LAPTOP\\laptopwww\\videoette_converter\\batch_files\\".$file_name.".bat",将wampapache 的服务用户更改为NT AUTHORITY\NetworkService(尝试使用我的帐户comet,没有用).. 但仍然获得权限被拒绝。

标签: windows fopen network-drive mapped-drive


【解决方案1】:

你确定没有域控制器挡道吗?

当提供文件的 Windows 机器位于 Active Directory 域中时:

1) 运行 WAMP 的机器必须在同一个域中。

2) 用于在您的 WAMP 机器上运行 Apache 服务的帐户必须至少对您要访问的共享具有读取权限。您应该指定域用户帐户,而不是将 Apache 服务作为“本地系统”或“wampapache”运行。 (P.S.:我喜欢 XAMPP 而不是 Wamp 进行这种开发,但这可能只是个人喜好)

另外,我猜如果您使用 UNC 路径而不是驱动器号会更好。它总是对我有用。您不需要使用转义的反斜杠,您可以将它们替换为单个正斜杠:

//yourwinserver/sharename/path/to/file.bat

【讨论】:

    猜你喜欢
    • 2015-02-09
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多