Любой встраиваемый просмотрщик документов

Я хочу включить просмотрщик документов в свое приложение CakePHP для загруженных документов. Я хочу, чтобы программа просмотра поддерживала Microsoft Word (.DOC и.DOCX), Microsoft PowerPoint (.PPT и.PPTX) и формат переносимых документов Adobe (.PDF).

Я хочу, чтобы мои пользователи могли просматривать документы, но не загружать их. Средство просмотра документов Google прекрасно, но пользователи могут просто вставить URL-адрес в адресную строку и загрузить документ.

Могу ли я в любом случае поделиться своими документами с пользователями так же, как читаемыми?

2 ответа

Прежде всего вы должны понимать, что когда браузер пользователя отображает какой-либо файл / контент, он уже находится на компьютере пользователя. Он уже был загружен. Нет волшебства: "контент остается на сервере, но пользователь может его видеть". Данные всегда передаются с сервера пользователю, и пользователь может заставить данные оставаться на своем компьютере - так или иначе.

Если вы поняли это, у вас есть несколько вариантов:

  • Вы не заботитесь о том, чтобы у пользователя был файл. Это самый вменяемый вариант. Все остальные методы - это своего рода "DRM", который ненавидят пользователи.
  • Передайте данные, которые пользователь должен видеть только в браузере:
    • создать изображение части документа, на которую смотрит пользователь, и отправить его в браузер. Пользователь не имеет текстовых данных и должен сделать много запросов, чтобы загрузить весь документ.
    • написать плагин для браузера (java, flash, javascript), который считывает зашифрованные документы с сервера, дешифрует их (опять же, на компьютере пользователя - что означает, что он может заглянуть в него) и отображает их. Таким образом, пользователь не просто получает документ, но должен расшифровать его.

Существуют решения, например, встраивание слайд-шоу презентаций с отключенной опцией загрузки. Не пытайтесь придумывать свои собственные, особенно если вы не хотите идти долго с поддержкой и постоянными улучшениями.

Я придерживаюсь следующих рекомендаций, используя Google Viewer для просмотра документов.

  • Генерация случайного URL-адреса каждый раз для документа (используя сценарии на стороне сервера и htaccess. Я использую PHP & htaccess). Это не даст никому прямой доступ к файлу.
  • Кодируйте время и дату (с помощью любого серверного сценария кодирования строки) с помощью URL-адреса, чтобы файл мог быть доступен только в течение определенного времени (скажем, 5 минут)
  • Выводить файл можно только с помощью соответствующего пользовательского агента Google Document Viewer. Это даст Google Viewer доступ только к этому файлу, но ни к кому другому, даже если они введут этот адрес в браузере.

Это все еще не очень безопасный способ, но он помогает мне.

Другие вопросы по тегам