2

我支持显示来自数据库的报告的 Web 应用程序。有时,报告将包含附件(通常是存储在数据库中的图像/文档)。

我们通过动态 .htm 资源提供附件,该资源从数据库中流式传输附件,并根据附件类型填充内容类型(我们支持 PDF、RTF 和各种图像格式)

对于 RTF,我们遇到了一个问题。似乎很多 Windows 用户默认没有“application/rtf”内容类型的关联(他们确实有*.rtf 文件扩展名的关联)。因此,在 Internet Explorer 6 中单击附件链接不会执行任何操作。

将“应用程序/msword”作为内容类型返回似乎可以在单击链接时使 RTF 可见,但仅适用于安装了 MS Office 的人(一些用户不会安装它,并且将使用备用 RTF 阅读器,如 OpenOffice)。

此应用程序是公开访问的,因此我们无法控制用户的机器设置。

这里有人解决过这个问题吗?如何?谢谢!

4

3 回答 3

4

使用application/octet-streamcontent-type 强制下载。下载后,应该可以在任何注册处理 .rtf 文件的内容中查看它。

于 2009-08-28T00:19:06.147 回答
3

除了Content-Type标题之外,您还需要添加以下内容:

Content-Disposition: attachment; filename=my-document.rtf
于 2009-08-28T00:42:06.550 回答
0

写字板(几乎在每台 Windows 机器上都有)可以查看 RTF 文件。是否有“应用程序/写字板”内容类型?

或者,鉴于 RTF 文件很少,您最好的解决方案可能是使用服务器端组件打开 RTF 文件,将其转换为其他格式(如 PDF 或纯 HTML),然后将其提供给请求的客户端。我不知道您在服务器端使用什么语言/平台,所以我不知道该告诉您使用什么。

于 2009-08-28T00:17:49.983 回答