【问题标题】:Any Embeddable Document Viewer任何可嵌入的文档查看器
【发布时间】:2011-06-14 06:49:16
【问题描述】:

我希望在我的 CakePHP 应用程序中包含一个文档查看器,用于上传文档。我想要一个支持 Microsoft Word(.DOC 和 .DOCX)、Microsoft PowerPoint(.PPT 和 .PPTX)和 Adob​​e Portable Document Format (.PDF) 的查看器。

我希望我的用户能够查看文档,但不能下载。谷歌文档查看器很棒,但用户只需将 URL 插入地址栏并下载文档。

我是否可以像可读文档一样与用户共享我的文档?

【问题讨论】:

    标签: php cakephp documentviewer


    【解决方案1】:

    首先你必须明白,当用户的浏览器显示一些文件/内容时,它已经在用户的机器上。它已经被下载了。没有“内容保留在服务器上,但用户可以看到”的神奇之处。数据总是从服务器传输到用户,用户可以让数据留在他的机器上——不管是哪种方式。

    如果你理解这一点,你有几个选择:

    • 您不关心拥有该文件的用户。这是最明智的选择。所有其他方法都是用户讨厌的某种“DRM”。
    • 仅将用户应该看到的数据传输到浏览器:
      • 生成用户正在查看的文档部分的图像并将其发送到浏览器。用户没有文本数据,需要执行许多请求才能下载所有文档。
      • 编写一个浏览器插件(java、flash、javascript),从服务器读取加密文档,解密它们(同样,在用户的机器上 - 这意味着他可以窥视它)并显示它。这样一来,用户不仅可以获取文档,还需要对其进行解密。

    现有解决方案,即嵌入幻灯片共享演示文稿并禁用下载选项。不要尝试自己发明,尤其是如果您不想在支持和持续改进的情况下走很长的路。

    【讨论】:

    • 谢谢你的洞察力。
    【解决方案2】:

    我在使用 google 文档查看器时遵循以下准则。

    • 每次生成文档的随机 URL 地址(使用服务器端脚本和 htaccess。我正在使用 PHP 和 htaccess)。这不会让任何人直接访问该文件。
    • 使用 URL 对时间和日期进行编码(通过使用任何服务器字符串编码脚本),以便文件只能在特定时间(比如 5 分钟)内访问
    • 仅通过匹配的 Google Document Viewer 用户代理输出文件。这只会让 Google Document Viewer 访问该文件,而其他人则无法访问,即使他们在浏览器中输入了该地址。

    这仍然不是一个非常安全的方法,但对我来说是诀窍。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-01
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      • 2020-06-10
      • 2014-08-14
      • 2015-06-05
      • 1970-01-01
      相关资源
      最近更新 更多