可以下载.rtf文件

时间:2015-06-04 10:31:05

标签: http header content-type

当用户点击下载链接时,我可以下载pdf文件。为此,我确实喜欢这个:

SqlDataReader reader = command.ExecuteReader();

                if (!reader.Read()) return;
                Response.Clear();

                string fileExtension = reader["FileExt"].ToString().Trim();

                if (reader["DocumentData"] != DBNull.Value)
                {
                    switch (fileExtension)
                    case "pdf":
                            Response.ContentType = "application/pdf";
                            break;
                            ...

                    case "rtf":
                            Response.ContentType = "application/rtf";
                            break;

我试图对.rtf做同样的事情,但是当用户点击链接时,浏览器会显示我在下面附加的图像(奇怪的符号)。但我希望它促使用户保存文件。我用户右键单击链接,并说保存为(someName.rtf),然后它工作正常。但老一辈人不会知道这一点。

enter image description here 我试过

application/rtf
application/x-rtf
text/richtext

我发现的大多数示例都使用application/rtf

我还需要做些什么,以便人们可以下载.rtf文件吗? 我试图提供相关代码,但如果您需要更多信息,请告诉我。 提前致谢

1 个答案:

答案 0 :(得分:0)

我有一个有PHP经验的人帮助我。我的解决方案是添加这个:

case "rtf":
                            Response.ContentType = "application/octet-stream";
                            Response.Headers["Content-Transfer-Encoding"] = "Binary";
                            Response.Headers["Content-disposition"] = "attachment; filename=\"fileName.rtf\"";

                            break;

所以我强制浏览器下载文件,而不是尝试渲染它。 我希望这能节省一些人用的时间。