我需要使用PHP访问Windows共享上的Excel文件,但似乎遇到了身份验证问题。
我正在使用PHP-ExcelReader打开和读取该文件。在我的本地机器上运行得很好,但是我放置它的服务器没有访问这个共享的权限,所以它告诉我这个路径是不可读的!
我甚至不确定我访问此共享的路径是否正确:
$file_to_include = "\\\\10.9.8.7\depts$\ExcelFile.xls";但它在我的机器上工作,正如我所说的,所以我对此很满意。
有什么方法可以在这里的某个地方添加我的证书吗?
发布于 2009-09-18 14:42:16
路径\\10.9.8.7\depts$\ExcelFile.xls必须是客户端本地可访问的,因为PHP不支持SMB。
编辑:至少不是原生的,请尝试smb4php
发布于 2009-10-09 22:54:40
您的路径是正确的。
您可以尝试的一件事是共享服务器上的驱动器,然后映射每个用户计算机上的共享驱动器(确保它们都是相同的驱动器号或名称),或者只映射您的计算机。如果不是太多,用户的计算机会更好,以防您外出或忘记进行身份验证。这样,当用户进行身份验证时,它会打开驱动器。然后,您可以通过类似以下内容调用驱动器:
$file_to_include = '\\\\'.$_SERVER['REMOTE_ADDR'].'\mappedDrive\file.xls';发布于 2019-09-08 18:26:47
您的路径是正确的,但请记住,当使用双引号时,$ amd反斜杠是php中的一个特殊字符。
所以你可以这样写:
$file_to_include = '\\10.9.8.7\depts$\ExcelFile.xls';或者使用双引号,但在特殊符号前添加额外的反斜杠
$file_to_include = "\\\\10.9.8.7\depts\\\$\\ExcelFile.xls";或者,您只能使用正斜杠作为目录分隔符,但是仍然必须对美元进行转义
$file_to_include = "\\\\10.9.8.7/depts/\$/ExcelFile.xls";关于authdata:如果你运行的是php文件,它通常会继承启动进程的权限。这意味着,如果您已经在浏览器中保存了该共享的身份验证,并且您正在启动一个php,那么php文件将继承这个已经保存的权限。
但是不要忘记,当你在when服务器上运行php时,这个when服务器可能是以不同的用户身份运行的,这个用户和你当前登录的用户没有相同的权限。
https://stackoverflow.com/questions/1444976
复制相似问题