首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP访问Windows共享

使用PHP访问Windows共享
EN

Stack Overflow用户
提问于 2009-09-18 14:38:33
回答 3查看 25.2K关注 0票数 5

我需要使用PHP访问Windows共享上的Excel文件,但似乎遇到了身份验证问题。

我正在使用PHP-ExcelReader打开和读取该文件。在我的本地机器上运行得很好,但是我放置它的服务器没有访问这个共享的权限,所以它告诉我这个路径是不可读的!

我甚至不确定我访问此共享的路径是否正确:

代码语言:javascript
复制
    $file_to_include = "\\\\10.9.8.7\depts$\ExcelFile.xls";

但它在我的机器上工作,正如我所说的,所以我对此很满意。

有什么方法可以在这里的某个地方添加我的证书吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-09-18 14:42:16

路径\\10.9.8.7\depts$\ExcelFile.xls必须是客户端本地可访问的,因为PHP不支持SMB。

编辑:至少不是原生的,请尝试smb4php

票数 3
EN

Stack Overflow用户

发布于 2009-10-09 22:54:40

您的路径是正确的。

您可以尝试的一件事是共享服务器上的驱动器,然后映射每个用户计算机上的共享驱动器(确保它们都是相同的驱动器号或名称),或者只映射您的计算机。如果不是太多,用户的计算机会更好,以防您外出或忘记进行身份验证。这样,当用户进行身份验证时,它会打开驱动器。然后,您可以通过类似以下内容调用驱动器:

代码语言:javascript
复制
$file_to_include = '\\\\'.$_SERVER['REMOTE_ADDR'].'\mappedDrive\file.xls';
票数 0
EN

Stack Overflow用户

发布于 2019-09-08 18:26:47

您的路径是正确的,但请记住,当使用双引号时,$ amd反斜杠是php中的一个特殊字符。

所以你可以这样写:

代码语言:javascript
复制
$file_to_include = '\\10.9.8.7\depts$\ExcelFile.xls';

或者使用双引号,但在特殊符号前添加额外的反斜杠

代码语言:javascript
复制
$file_to_include = "\\\\10.9.8.7\depts\\\$\\ExcelFile.xls";

或者,您只能使用正斜杠作为目录分隔符,但是仍然必须对美元进行转义

代码语言:javascript
复制
$file_to_include = "\\\\10.9.8.7/depts/\$/ExcelFile.xls";

关于authdata:如果你运行的是php文件,它通常会继承启动进程的权限。这意味着,如果您已经在浏览器中保存了该共享的身份验证,并且您正在启动一个php,那么php文件将继承这个已经保存的权限。

但是不要忘记,当你在when服务器上运行php时,这个when服务器可能是以不同的用户身份运行的,这个用户和你当前登录的用户没有相同的权限。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1444976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档