Accessing a Windows Share using PHP

大兔子大兔子 提交于 2019-11-27 07:04:00

问题


I need to access an Excel file on a Windows Share using PHP but seem to be running into what looks like an authentication issue.

I'm using PHP-ExcelReader to open and read the file. Works fine on my local machine but the server I'm putting it on doesn't have the rights to access this share, and so its telling me that the path is unreadable!

I'm not even sure the path I have for accessing this share is correct:

    $file_to_include = "\\\\10.9.8.7\depts$\ExcelFile.xls";

But it works on my machine, as I said so I'm happy with that.

Is there any way I can add my credentials in here somewhere?


回答1:


Path \\10.9.8.7\depts$\ExcelFile.xls must be locally accessible to the client, since PHP has no SMB support.

EDIT: At least not natively, try smb4php




回答2:


Your path is correct.

One thing you could try is to share the drive on the server, then map the shared drive on each users computer (make sure they are all the same drive letter, or name), or just your computer. If it's not too many, the users computers would be better, in case you're out, or forget to authenticate. This way, when the user authenticates, it opens the drive up. You can then call the drive via something like:

$file_to_include = '\\\\'.$_SERVER['REMOTE_ADDR'].'\mappedDrive\file.xls';



回答3:


You path is correct, but keep in mind, that $ amd backslash is a special-char in php when using double quotes.

So you could either write:

$file_to_include = '\\10.9.8.7\depts$\ExcelFile.xls';

or you use double quotes but you add a extra backslash before the special signs

$file_to_include = "\\\\10.9.8.7\depts\\\$\\ExcelFile.xls";

or you yust use forward slashes as directory separator, but the dollar still must be escaped

$file_to_include = "\\\\10.9.8.7/depts/\$/ExcelFile.xls";

About the authdata: if you are running a php file, it usually inherits the permissions of the starting process. What means, if you already saved the auth for this share in your explorer and you are starting a php, the php file inherits this already saved permissions.

But dont forget, when you run a php in a webserver, this webserver is maybe running in a different user, which dont has the same permissions like your currently logged in user.



来源:https://stackoverflow.com/questions/1444976/accessing-a-windows-share-using-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!