0
<!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>

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

4

1 回答 1

1

简短的回答:

使用 PHP,您不能完全按原样转换此脚本,因为 ActiveX 是客户端,而 PHP 是服务器端。Javascript 也不能​​为你做这件事,因为现代浏览器是沙盒的,并且 JavaScript 不能访问本地文件系统。


不是那么简短的答案:

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

您可以使用 Java Applet,它几乎可以完成您使用 ActiveX 可以完成的工作。跨浏览器始终如一地工作,但用户必须安装 Java 运行时环境。

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


黑客的方式

有一种简单的方法可以处理这种情况。虽然需要一个服务器。

  1. 创建一个将文件上传到服务器的页面。
  2. 然后通过 AJAX(或任何请求,无关紧要)将文件发送回浏览器。
  3. 使用 javascript 在客户端(浏览器)中操作文件。
  4. 将文件交给用户下载。
于 2012-12-01T15:26:05.227 回答