2011-06-14 25 views
3

我正在寻找在我的CakePHP应用程序中包含文档查看器以供上载文档。我想要一个支持Microsoft Word(.DOC和.DOCX),Microsoft PowerPoint(.PPT和.PPTX)和Adobe Portable Document Format(.PDF)的浏览器。任何可嵌入的文档查看器

我希望我的用户能够查看文档,但不能下载它。 Google文档查看器非常棒,但用户只需将网址插入地址栏并下载文档即可。

无论如何,我可以与用户分享我的文档就像可读文档一样吗?

回答

5

首先您必须了解,当用户的浏览器显示某些文件/内容时,它已经在用户的机器上。它已被下载。 “没有内容保留在服务器上,但用户可以看到”。数据总是从服务器传输给用户,用户可以使数据保留在他的机器上 - 这种或那种方式。

如果你明白这一点,你有几种选择:

  • 你不关心有该文件的用户。这是最理智的选择。所有其他方法都是用户讨厌的某种“DRM”。
  • 将用户只能看到的数据传输到浏览器:
    • 生成用户正在查看的文档部分的图像并将其发送给浏览器。用户没有文本数据,需要做很多请求才能获取所有下载的文档。
    • 编写一个从服务器读取加密文档的浏览器插件(java,flash,javascript),解密它们(再次,在用户的机器上 - 这意味着他可以窥视它)并显示它。这样,用户不会简单地获取文档,但需要解密它。

有现有的解决方案,即嵌入有残疾的下载选项SlideShare上的演示文稿。不要试图自己创造,特别是如果你不想在支持和持续增强方面走很长的路。

+0

谢谢我感谢您的洞察力。 – 2011-06-15 07:18:22

1

我坚持使用谷歌文档查看器的以下准则。

  • 每次为文档生成随机URL地址(使用服务器端脚本和htaccess,我使用PHP & htaccess)。这不会让任何人直接访问该文件。
  • 使用URL编码时间和日期(通过使用任何服务器字符串编码脚本),以便文件只能在特定时间(例如5分钟)访问
  • 仅通过匹配Google文档查看器用户代理输出文件。这将只允许Google文档查看器访问该文件,但不能访问其他人,即使他们在浏览器中键入该地址。

这仍然不是一个非常安全的方式,但为我做的伎俩。