使用 Web 浏览器在本地打开编辑器,并使用 php 检索服务器上的数据


Open an editor locally using the web browser and retrieve the data on the server using php?

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

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

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

2)使用exec()打开应用程序(在这样做之前,请检查用户使用的操作系统类型并创建适当的错误处理)

3)保存文件应位于创建的文件中(点1)。

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

如果您有更好的主意,请告诉我?

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

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

简而言之,你不能做到这一切。你可以做一些。请记住,使用HTTP,用户可以完全控制,并且您不能"在用户的计算机上"执行任何操作。如果可以的话,这将被称为"危险的安全漏洞",并且一旦各种浏览器的编码人员到达它就会停止工作。

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

然后用户将文本保存在他的机器上。您无法保存在远程计算机上(并非在所有编辑器中),因为它不是"保存",而是您想要的"上传"。

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

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

一个

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