1、在模态窗口中下载word没有反应,需要实现的功能如图:
2、后台代码:
case "updates"://下载
attmodel = attbll.GetModel(Convert.ToDecimal(ATTACHIDs));
string path = attmodel.ATTATCHPATH.ToString();
string ATTACHTITLE = attmodel.ATTACHTITLE.ToString();
string ATTFILETYPE = attmodel.ATTATCHTYPE.ToString();
//ATTACHTITLE:文件名称,ATTFILETYPE;.doc后缀名
string name = ATTACHTITLE + ATTFILETYPE;
// 保存文件的虚拟路径
string Url = "~/" + path;
// 保存文件的物理路径
string FullPath = HttpContext.Current.Server.MapPath(Url);
// 去除文件的只读属性
File.SetAttributes(FullPath, FileAttributes.Normal);
// 初始化FileInfo类的实例,作为文件路径的包装
FileInfo FI = new FileInfo(FullPath);
// 判断文件是否存在
if (FI.Exists)
{
// 将文件保存到本机
this.Response.Clear();
this.Response.ClearContent();
this.Response.ClearHeaders();
this.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(name));
this.Response.AddHeader("Content-Length", FI.Length.ToString());
this.Response.AddHeader("Content-Transfer-Encoding", "binary");
this.Response.ContentType = "application/octet-stream";
this.Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
this.Response.WriteFile(FI.FullName);
this.Response.Flush();
Response.Close();
this.Response.End();
BindGrid();
}
break;
3、模态窗口前台需要注意的是需要在head 标签和body标签中加入如下代码:
<head runat="server">
<base target="download"/>
</head>
<body class="table_b">
<iframe id="download" name="download" height="0px" width="0px"></iframe>
</body>