Как обслуживать .RTFs - PullRequest
       17

Как обслуживать .RTFs

2 голосов
/ 28 августа 2009

Я поддерживаю веб-приложение, которое отображает отчеты из базы данных. Иногда отчет будет содержать вложение (обычно это изображение / документ, который также хранится в базе данных).

Мы обслуживаем вложение через динамический ресурс .htm, который передает вложение из базы данных и заполняет тип содержимого в зависимости от типа вложения (мы поддерживаем PDF, RTF и различные форматы изображений)

Для RTF мы столкнулись с проблемой. Похоже, что многие пользователи Windows по умолчанию не имеют ассоциации для типа контента application / rtf (у них do есть связь для расширения файла * .rtf). В результате, нажатие на ссылку на вложение ничего не делает в Internet Explorer 6.

Возвращение 'application / msword' в качестве типа контента, по-видимому, делает RTF видимым при переходе по ссылке, но только для людей, у которых установлен MS Office (некоторые пользователи не установят это и будут использовать альтернативные читатели RTF, такие как OpenOffice).

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

Кто-нибудь здесь решал это раньше? И как? Спасибо!

Ответы [ 3 ]

4 голосов
/ 28 августа 2009

Используйте application/octet-stream content-type для принудительной загрузки. Как только он загружен, он должен быть доступен для просмотра в любом зарегистрированном для обработки .rtf-файлах.

3 голосов
/ 28 августа 2009

В дополнение к заголовку Content-Type также необходимо добавить следующее:

Content-Disposition: attachment; filename=my-document.rtf
0 голосов
/ 28 августа 2009

Wordpad (который есть практически на каждой машине с Windows) может просматривать файлы RTF. Существует ли тип контента 'application / wordpad'?

В качестве альтернативы, учитывая редкость RTF-файлов, лучшим решением может быть использование компонента на стороне сервера для открытия RTF-файла, его преобразования в какой-либо другой формат (например, PDF или прямой HTML) и передачи его запрашивающему клиент. Я не знаю, какой язык / платформу вы используете на стороне сервера, поэтому я не знаю, что вам сказать для этого.

...