我正在尝试在浏览器中打开.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();
}
答案 0 :(得分:1)
将查询字符串参数FN
的值更改为网络文件名(test.docx)。 Content-Disposition
标头确定下载时浏览器中的文件名。
换句话说,标题必须是
Content-Disposition: attachment;filename=test.docx
所以您的代码应该是
this.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fn);
其中fn等于test.docx,可能不是请求参数。始终检查请求参数值并对其进行验证是个好主意。
还请注意,在添加标题时,请勿在其名称后加上分号。