2011-06-14 49 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文檔查看器訪問該文件,但不能訪問其他人,即使他們在瀏覽器中鍵入該地址。

這仍然不是一個非常安全的方式,但爲我做的伎倆。