C# 从本地系统下载excel模板时,使用特殊字符'#';在模板中,名称更改为'_';自动地

C# 从本地系统下载excel模板时,使用特殊字符'#';在模板中,名称更改为'_';自动地,c#,C#,我在本地系统中有一个名为“CLIA#OfLabTemplate.xls”的excel模板 从.net中的UI下载此模板时,模板名称将更改为“CLIA_of labtemplate.xls” 我应该怎么做才能使文件名不会更改 var filepath = Server.MapPath("~/App_Data/CLIA#OfLabTemplate.xls"); Response.ClearContent(); Response.AddHeader("Content-Disposition

我在本地系统中有一个名为“CLIA#OfLabTemplate.xls”的excel模板

从.net中的UI下载此模板时,模板名称将更改为“CLIA_of labtemplate.xls”

我应该怎么做才能使文件名不会更改

    var filepath = Server.MapPath("~/App_Data/CLIA#OfLabTemplate.xls");

Response.ClearContent();

Response.AddHeader("Content-Disposition", "attachment; filename=" + myfile.Name);
                Response.AddHeader("Content-Length", myfile.Length.ToString(CultureInfo.InvariantCulture));
                Response.ContentType = "xls";

                Response.TransmitFile(myfile.FullName);
                Response.End();

首先是一个小注释:它不是一个模板(.xlt),而是一个工作表(.xls)

内容类型应为application/vnd.ms-excel,如本文所示:

或者查看该帖子的下一条评论,以使用System.Web.MimeMapping.GetMimeMapping(您的文件名)(.net 4.5)

myfile.Name的值是多少?检查您随请求发送的标题(查看浏览器网络选项卡,或使用
curl
)。您可能发送了正确的文件名,是浏览器重命名了它。它的CLIA#OfLabTemplate.xlsThanks,是浏览器(Internet explorer)重命名了它。