我试图读取一个共享网络文件夹中的文件,我可以达到,但php没有访问权限。
共享文件夹 "xtern "位于电脑 "Saturn "上,文件名为 "seq_ws.csv"。
这是我的代码:
<?php
$fileURL = "\\saturn\xtern\seq_ws.csv";
$fileAvailable = file_exists($fileURL);
if($fileAvailable){
echo "Succes";
}else{
echo "fail";
echo file_get_contents($fileURL);
}
?>
结果是这样的
fail
Warning: file_get_contents(\saturn\xtern\seq_ws.csv): failed to open stream: No such file or directory in C:\Apache24\htdocs\file.php on line 9
奇怪的是,我可以在浏览器和windows资源管理器中打开这个路径,并且读取文件。这个共享文件夹拥有我运行Apache的用户的所有权限,同时也拥有 "Everyone "的所有权限。
我已经尝试研究这个问题,但一直无法找到任何解决方案。我已经检查了 php.ini
和 allow_url_fopen
设置为 On
. 我很确定这是Apache,PHP或共享文件夹中的一个设置,因为我可以读取文件,如前所述,但就是不能用我的PHP脚本。
如果有人有任何信息或建议,我们将非常感激。
先谢谢你。
经过更多的搜索,我终于找到了答案,UNC路径的问题是Apache服务不能进入共享文件夹(也许是一个错误),因为服务的设置方式。要解决这个问题,你必须将Apache链接到用户配置文件,我不知道这是否只是Windows的问题。
要解决Apache不能访问共享文件夹的问题。
services.msc
Local System account
到 This account
并填写账户名和密码如果你不想保持与你相同的帐户,你的 Localhost
要连接到共享文件夹只需将名称和密码复制到文本框中即可。
我希望这将帮助其他人,遇到同样的问题,我做的。在研究这个问题时,我发现很多人做了很多不同的评论和答案,但没有任何工作。