ASP.NET 将XML文件下载到本地

 /// <summary>
    /// 生成导出的XML文件 并实现下载
    /// </summary>
    /// <returns>生成的文件名称</returns>
    private void SetXMLFile(string condition)
    {
        DataTable dt = null;
        if (dwzdb != null)
        {
            //根据日期查询要导出的数据
           
            switch (flag)
            { 
                case "LZDB":
                    dt = Family.GetCheckList(stepId, dwzdb.Code, flag, condition);
                    break;
                case "LZDBNS":
                    dt = BussinessUtilNS.GetCheckList(nsnf, dwzdb.Code,flag, condition);
                    break;
            }
        }
        if (dt != null)
        {
            //生成要导出的xml文档
            string xml = "<DocumentElement></DocumentElement>";
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(xml);
            XmlElement element = doc.DocumentElement;
            XmlElement houseCheckNode = null;
            XmlElement childNode = null;
            foreach (DataRow dr in dt.Rows)
            {
                houseCheckNode = doc.CreateElement("HOUSECHECK");
                childNode = doc.CreateElement("JTBH");
                childNode.InnerText = dr["JTBH"].ToString();
                houseCheckNode.AppendChild(childNode);
                childNode = doc.CreateElement("XM");
                childNode.InnerText = dr["XM"].ToString();
                houseCheckNode.AppendChild(childNode);
                childNode = doc.CreateElement("ZJHM");
                childNode.InnerText = dr["ZJHM"].ToString();
                houseCheckNode.AppendChild(childNode);
                element.AppendChild(houseCheckNode);
            }
            //将xml文档输出
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            doc.Save(ms);
            string filename = this.GetFileName();
            filename = Server.UrlEncode(filename);
            Response.ContentEncoding = Encoding.GetEncoding("utf-8");
            Response.AddHeader("Content-Disposition", "attachment; filename=" + filename);
            Response.AddHeader("Content-Length", ms.Length.ToString());
            Response.ContentType = "application/octet-stream";
            byte[] b = ms.ToArray();
            Response.OutputStream.Write(b, 0, b.Length);
            Response.OutputStream.Flush();
            Response.OutputStream.Close();
            HttpContext.Current.ApplicationInstance.CompleteRequest();

            //string filePath = "你自己的路径"; 
            //FileInfo DownloadFile = new FileInfo(filePath); 
            //HttpContext.Current.Response.Clear();
            //HttpContext.Current.Response.ContentType = "application/octet-stream";
            //HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(DownloadFile.Name, Encoding.UTF8));
            //HttpContext.Current.Response.AppendHeader("Content-Length", DownloadFile.Length.ToString()); 
            //HttpContext.Current.Response.WriteFile(DownloadFile.FullName);
            //HttpContext.Current.Response.Flush();
            //HttpContext.Current.Response.End(); 

        }
        else
        {
            dtlist.InnerHtml = " <span  style='color:red'>查验错误!</span>";
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值