【发布时间】:2011-12-09 17:09:13
【问题描述】:
我正在开展一个项目,该项目将使用户能够从网页启动工具。该页面是使用 php 设计的。我的 PC 上安装了 WAMP 服务器,我可以单击一个按钮在 C 驱动器上创建和写入一个新的批处理文件,其中包含要启动的应用程序的路径,当用户在页面上选择它们时从数据库中提取这些文件。 现在,当我在我的 PC 上的 WAMP 服务器上执行此操作时,它可以工作。我必须将脚本上传到托管在同一 LAN 上的工作服务器。唯一的问题是我似乎无法在用户 PC 上创建或写入文件。
据我了解,它并未映射当前 PC 的驱动器。这是我在 PC 上的操作。
$file_path="C\\test.bat"
function runApp($file_path, $appPath){
$bat_file = fopen($file_path, "w");
fwrite($bat_file, "start ".$appPath." \n");
fwrite($bat_file, "echo exit \n");
fclose($bat_file); //close file after updating batch file
}
为了让它在工作中的服务器上工作,我尝试了
$ip=$_SERVER['REMOTE_ADDR'];
$file_path="user:pass@".$ip."\\F:\\test.bat";
但它仍然无法正常工作。我错过了什么?任何帮助将不胜感激
或者请告诉我是否有任何其他方式可以启动批处理文件或任何来自 php 站点的文件
【问题讨论】:
-
PHP 是服务器端,所以您在 PHP 中所做的任何事情都会发生在服务器上。您无法使用它在客户端 PC 上启动文件。查看 Javascript 或桌面应用程序。
-
您真正想做什么?不管它是什么,它似乎都不适合客户端(Web)服务器应用程序。
-
这是它应该的工作方式,并且在 wamp 服务器上工作。用户在线登录到他/她的帐户 --> 从要启动的应用程序列表中选择 --> 数据库更新请求并在 F 驱动器(与服务器位于同一域)上写入文件应用程序的路径要启动-> 之后您所要做的就是单击启动并启动批处理文件。问题再次是当我在我的计算机上执行此操作时它可以工作,但是一旦在实际的主机服务器上它似乎并没有写入文件。我知道 php 只是服务器端,只是想知道它为什么在 wamp 上工作?
-
@Michael “驱动器 F:”总是从运行服务器的机器上看到。它在本地工作,因为 PHP 在同一台物理机器上运行并且可以访问整个系统(只要权限允许 yadayada)。如果您想访问另一台机器,您将受到与其他任何东西相同的网络限制/允许/可能性。如果您无法访问目标计算机上的共享,则不能。特别是 SMB 对 PHP 来说很棘手。为什么不能简单地提供文件供下载?
-
@deceze 真的。我只是在想,因为主机服务器和客户端机器在同一个局域网上,我仍然可以通过调用它来访问 F 驱动器 \\servername\sharename\userId\\finename。如果这不起作用,我将不得不像你说的那样编写文件并下载它。我只是希望避免每次用户进行更改时都必须下载文件,也不是每个用户都知道他们将文件保存在哪里以及如何运行批处理文件。具有讽刺意味的是,我在一个为互联网提供技术支持的呼叫中心工作。谢谢
标签: php drive-mapping