2

我为解决这个问题苦苦挣扎了好几天,似乎找不到任何有用的指导。所以问题是我想在我的 Web 应用程序中实现一个功能,让用户可以选择在他们本地拥有的任何编辑器上编辑文本,然后保存文件(保存的文件将在线)。

建议的解决方案:我的想法是:

1)在浏览器文件位置本地为用户创建一个文件夹。

2)使用 exec() 打开应用程序(在此之前检查用户使用哪种操作系统并创建适当的错误处理)

3)保存文件应该在创建的文件中(第1点)。

4)从文件夹中检索数据。

如果你有更好的主意,请给我建议?

4

2 回答 2

3

你试图做的事情是不可能的。PHP 是服务器端的,它无法控制客户端,它只能向它发送一系列字符来呈现(显示的页面)。

有一些基于 javascript 的富编辑器,例如 CKEditor 和 TinyMCE,您可以提供给客户端使用,但您只能做到这些。此外,由于每个 Web 浏览器都与其他浏览器略有不同,并且在运行客户端 javascript/DOM 操作时都有自己的怪癖和错误,因此您可以预期在一个特定版本的一个特定版本中会发生很多奇怪的小问题浏览器,但在其他浏览器中没有。如果客户端关闭了 javascript,他们将根本看不到任何编辑器。

于 2012-07-02T16:27:13.223 回答
2

简而言之,你不能做到这一切。你可以做一些。请记住,使用 HTTP,用户完全可以控制,您“在用户的机器上”什么也做不了。如果可以的话,这将被称为“危险的安全漏洞”,并且一旦各种浏览器的编码人员接触到它就会停止工作。

您可以使用适当的 MIME 类型将输出发送给用户,这将打开您选择的编辑器。您甚至可以发明自己的 MIME 类型来做到这一点(用户必须自己安装编辑器)。

然后用户将文本保存在他的机器上。您不能在远程机器上保存(不是在所有编辑器中),因为它不是“保存”,而是您想要的“上传”。

最后,用户可以恢复他或她刚刚保存的文件,并通过例如 POST 表单将其提交给您。

坦率地说,在我住的地方,我们称之为“如何把自己的屁股放在别人的脚下”。想想所有可能的编辑器,每个可能都有自己的格式:如果用户(不)故意选择了一些奇怪的东西,比如“保存为 Word 2015 额外格式(压缩)”,并将文件上传到你的服务器 - 你是准备好理解文件格式并用它做一些有意义的事情了吗?

一个非常常见的替代方案是在 HTML 中实现多个富文本编辑器中的任何一个 - 例如,有 CKEdit 或 TinyMCE,等等。他们将让用户生成干净的 HTML 并自动将其上传到您的服务器上。

于 2012-07-02T16:30:12.900 回答