如何在PHP中编写这个ActiveX函数?

时间:2012-12-01 15:00:18

标签: php activex

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function ShowFile(sFilePath){
    var oFileSystem = new ActiveXObject("Scripting.FileSystemObject");
    frmEditHTML.tarHTMLText.value = oFileSystem.OpenTextFile(sFilePath.value).ReadAll();
}

function SaveAfterEditing(sFilePath){
    var oFileSystem = new ActiveXObject("Scripting.FileSystemObject");
    var oFile = oFileSystem.CreateTextFile(frmEditHTML.filPath.value,1);
    oFile.WriteLine(sFilePath.value);
    oFile.Close();
}
</script>
</head>
<body>
<form name="frmEditHTML">
Select the File you want to Edit
<input type=file name="filPath" onchange="ShowFile(this)">
<textarea name="tarHTMLText" cols=60 rows=20></textarea>
<input type="button" value="Save" name="cmdSave"  onclick="SaveAfterEditing(this.form['tarHTMLText'])">
</form>
</body>
</html>

我读了这个linklink,但他们无能为力! 我不想使用ActiveX,因为这个功能将仅限于IE。 FireFox中的IE Tab也会导致问题! 如何在不使用ActiveX的情况下在PHP中复制整个函数? 请帮助!

1 个答案:

答案 0 :(得分:1)

简答:

使用PHP,您无法完全按原样转换此脚本,因为ActiveX是客户端而PHP是服务器端。 Javascript也无法为您执行此操作,因为现代浏览器是沙盒,JavaScript无法访问本地文件系统。


答案不是那么简短:

但是,您还有其他选择,具体取决于您希望模仿的行为(和实现方法)。

您可以使用能够完成ActiveX操作的Java Applet。跨浏览器一致工作,但用户必须安装Java Runtime Environment。

您可以混合使用PHP + Javascript(AJAX)。您将文件上传到服务器,然后使用Javascript(通过Ajax的HTTP请求)控制PHP操作。


哈希方式

有一种处理这种情况的简单方法。但是在某个地方需要服务器。

  1. 创建一个将文件上传到服务器的页面。
  2. 然后通过AJAX(或任何请求,无关紧要)将文件发回浏览器。
  3. 使用javascript操作客户端(浏览器)中的文件。
  4. 将文件提供给用户下载。