从浏览器选项卡下载的Word文件,文件名不正确

时间:2018-07-10 05:19:53

标签: asp.net

我正在尝试在浏览器中打开.docx文件,但该文件已下载。很好,但是下载的.docx文件名不正确。

我正在使用Chrome浏览器和ASP.NET C#代码。

假设文件位于网络路径//test/test.docx和aspx文件名DownloadTest.aspx中,该文件名称具有下载单词doc代码。下载后,文件名为DownloadTest.docx而不是test.docx

下面是代码。

if (!this.IsPostBack)
{
    string filePath = Request.QueryString["FN"];
    Page.Title = filePath;

    this.Response.ClearContent();
    this.Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
    this.Response.AppendHeader("Content-Disposition;", "attachment;filename=" + Request.QueryString["FN"]);

    this.Response.WriteFile(filePath);
    this.Response.End();
}

1 个答案:

答案 0 :(得分:1)

将查询字符串参数FN的值更改为网络文件名(test.docx)。 Content-Disposition标头确定下载时浏览器中的文件名。

换句话说,标题必须是

Content-Disposition: attachment;filename=test.docx

所以您的代码应该是

this.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fn);

其中fn等于test.docx,可能不是请求参数。始终检查请求参数值并对其进行验证是个好主意。

还请注意,在添加标题时,请勿在其名称后加上分号。