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

时间:2012-07-02 16:20:39

标签: php zend-framework file-upload editor

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

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

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

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

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

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

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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

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

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

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

坦率地说,在我居住的地方,我们称之为“如何在其他人踢之前放置一个人的屁股”。想想所有可能的编辑器,每个编辑器都有自己的格式:如果用户(联合国)故意选择一些奇怪的东西,例如“保存在Word 2015 Extra Format(Compressed)”中,并将文件上传到您的服务器 - 是吗?准备好了解文件格式并用它做一些有意义的事情吗?

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