2

この問題を解決するために何日も苦労していますが、役立つガイダンスが見つからないようです。問題は、Web アプリケーションに機能を実装して、ユーザーがローカルにある任意のエディターでテキストを編集し、ファイルを保存するオプションを提供することです (保存されたファイルはオンラインになります)。

推奨される解決策:私の考えは次のとおりです。

1) ブラウザー ファイルの場所にユーザー用のフォルダーをローカルに作成します。

2) exec() を使用してアプリケーションを開きます (実行する前に、ユーザーが使用しているオペレーティング システムの種類を確認し、適切なエラー処理を作成します)。

3)ファイルを保存すると、作成されたファイルに保存されます(ポイント1)。

4)フォルダからデータを取得します。

より良いアイデアがあればアドバイスをお願いします。

4

2 に答える 2

3

あなたがやろうとしていることは不可能です。PHPはサーバー側であり、クライアントを制御することはできません。PHPは、レンダリングする文字のシーケンス(表示されるページ)のみを送信できます。

クライアントが使用できるように提供できるCKEditorやTinyMCEなどのjavascriptベースのリッチエディターがありますが、それはあなたができる限りのことです。さらに、すべてのWebブラウザーは他のブラウザーとは少し異なり、クライアント側のjavascript / DOM操作の実行に関しては独自の癖やバグがあるため、特定の特定のバージョンで発生する多くの奇妙な小さな問題が予想されます。ブラウザですが、他のブラウザではありません。また、クライアントでJavaScriptがオフになっている場合、エディターはまったく表示されません。

于 2012-07-02T16:27:13.223 に答える
2

要するに、あなたはそれをすべて行うことはできません。あなたはそのいくつかを行うことができます。HTTPを使用すると、ユーザーが完全に制御でき、「ユーザーのマシン上で」何もできないことを忘れないでください。可能であれば、それは「危険なセキュリティエクスプロイト」と呼ばれ、さまざまなブラウザのコーダーがそれに到達するとすぐに機能しなくなります。

適切なMIMEタイプを使用して出力をユーザーに送信すると、選択したエディターが開きます。それを行うために独自のMIMEタイプを発明することもできます(ユーザーは自分でエディターをインストールする必要があります)。

次に、ユーザーは自分のマシンにテキストを保存します。リモートマシン(すべてのエディターではない)に保存することはできません。これは「保存」ではないため、必要な「アップロード」です。

最後に、ユーザーは保存したばかりのファイルを復元し、たとえばPOSTフォームを介してファイルを送信できます。

率直に言って、私が住んでいる場所では、これを「他の人のキックの前に自分のお尻を置く方法」と呼んでいます。考えられるすべてのエディターについて考えてみてください。それぞれが独自の形式を使用している可能性があります。ユーザーが「Word2015ExtraFormat(Compressed)で保存」などの奇妙なものを(無意識のうちに)選択し、ファイルをサーバーにアップロードした場合、あなたはファイル形式を理解し、それを使って何か意味のあることをする準備ができていますか?

非常に一般的な代替手段は、HTMLでいくつかのリッチテキストエディタのいずれかを実装することです。たとえば、CKEditやTinyMCEなどがあります。これにより、ユーザーはクリーンなHTMLを作成し、サーバーに自動的にアップロードできます。

于 2012-07-02T16:30:12.900 に答える