【问题标题】:PHP create file in mapped drive directoryPHP在映射的驱动器目录中创建文件
【发布时间】:2021-08-25 05:48:07
【问题描述】:

尝试在映射驱动器 (Z:) 中的文件夹中创建文件

我使用的源码如下:

$fileNumber = 'F2310XXXX';
$content = "; Test \n; Date : ".date('d/m/Y H:i:s')."\n; Filename : ".$fileNumber.".TXT";
$fp = fopen("//xx.xx.xxx.xxx/MC/".$fileNumber.".TXT","wb");
fwrite($fp,$content);
fclose($fp);  

出现以下错误:

A PHP Error was encountered
Severity: Warning. 
Message: fopen(//xx.xx.xxx.xxx/MC/F2310XXXX.TXT): failed to open stream: Permission denied

Filename: controllers/Auth.php

Line Number: 76

Backtrace:

File: C:\wamp64\www\mc-app\admin\application\controllers\Auth.php
Line: 76
Function: fopen

File: C:\wamp64\www\mc-app\admin\index.php
Line: 315
Function: require_once

请有人帮忙解决这个问题,因为我尝试了几乎所有从谷歌得到的解决方案,但没有运气。您的所有帮助将不胜感激。提前致谢

【问题讨论】:

  • 我要提到映射驱动器是每个用户的,但后来注意到这里唯一提到的Z: 是在问题本身,而不是在你的代码中:-?
  • @ÁlvaroGonzález 而不是Z: 我使用相同的服务器地址。
  • 确保运行 Apache 的用户有权访问该共享。
  • @MagnusEriksson 是的 Apache 以管理员身份运行

标签: php windows apache codeigniter wamp


【解决方案1】:

如果你知道驱动器号为什么不指定它?

$fp = fopen("Z:/MC/".$fileNumber.".TXT","wb");

没有它,您将尝试在位于驱动器的默认脚本上打开该文件。

xx.xx.xxx.xxx 是 IP 地址吗?

这个问题几乎肯定是权限问题。

【讨论】:

  • 因为我猜xx.xx.xxx.xxx 表示共享的IP,所以它应该是Z:/xx.xx.xxx.xxx/,而不是两者。无论如何,它可能并不那么简单,因为 PHP 应用程序通过 Apache 运行(基于他们的标签),它将在另一个可能没有映射该驱动器的用户上运行。
  • 感谢您的回答.. 即使我保留了驱动器号,它也不起作用。而 xx.xx.xxx.xxx 是机器的 IP 地址。
  • @MagnusEriksson 是的,正确.. 那么我们该如何解决这个问题呢?
  • 我认为这是在 Windows 子系统上运行的。只要用户对 Z: 上的该文件夹具有写入权限,使用 Z:/MC/... 就可以工作。
  • @GuySchwartz 我尝试在 MC 中手动创建文件,并且它可以正常工作。所以我认为用户有权访问该文件夹。
猜你喜欢
  • 2011-05-28
  • 2011-11-23
  • 2020-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-07
相关资源
最近更新 更多