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>

このリンクとこのリンクを読みましたが、役に立ちませんでした! この機能はIEに制限されるため、ActiveXを使用したくありません。FireFox の IE Tab も問題を引き起こします。ActiveX を使用せずに PHP でこの関数全体を複製するにはどうすればよいですか? 助けてください!

4

1 に答える 1

1

短い答え:

PHPでは、ActiveXがクライアント側であり、PHPがサーバー側であるため、このスクリプトをそのまま変換することはできません。最新のブラウザはサンドボックス化されており、JavaScriptはローカルファイルシステムにアクセスできないため、Javascriptでもこれを行うことはできません。


それほど短い答えではありません:

ただし、模倣する動作(および実装方法)に応じて、他のオプションがあります。

ActiveXで実行できることとほぼ同じことができるJavaアプレットを使用できます。ブラウザ間で一貫して動作しますが、ユーザーはJavaランタイム環境をインストールしておく必要があります。

PHPとJavascript(AJAX)を組み合わせて使用​​できます。サーバーにファイルをアップロードしてから、Javascript(Ajax経由のHTTPリクエスト)を使用してPHPアクションを制御します。


ハックな方法

この状況を処理するためのハックのような簡単な方法があります。ただし、どこかにサーバーが必要です。

  1. サーバーにファイルをアップロードするページを作成します。
  2. 次に、AJAXを介してファイルをブラウザに送り返します(またはリクエストは関係ありません)。
  3. javascriptを使用してクライアント側(ブラウザ)でファイルを操作します。
  4. ダウンロードするファイルをユーザーに渡します。
于 2012-12-01T15:26:05.227 に答える