Любой встраиваемый просмотрщик документов
Я хочу включить просмотрщик документов в свое приложение 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 доступ только к этому файлу, но ни к кому другому, даже если они введут этот адрес в браузере.
Это все еще не очень безопасный способ, но он помогает мне.