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

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

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

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

Сначала вы должны понимать, что, когда браузер пользователя отображает некоторый файл / контент, он уже находится на машине пользователя . Он уже загружен. Магии нет, содержание остается на сервере, но пользователь может его увидеть ». Данные всегда передаются с сервера пользователю, и пользователь может сделать данные на своем компьютере – так или иначе.

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

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

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

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

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

Это все еще не очень безопасный способ, но делает трюк для меня.