• asp.net生成HTML静态页


    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Text.RegularExpressions;
    using System.IO;
    
    /// <summary>
    /// CreateHtml 的摘要说明
    /// asp.net生成HTML静态页
    /// 调用方法:
    /// new CreateHtml().Nei_Create("http://localhost:4032/new5mdn/default.aspx", "default.htm"); 
    /// </summary>
    public class CreateHtml :System.Web.UI.Page
    {
        public CreateHtml()
        {
            
        }
        /// <summary>
        /// 生成静态页面,生成位置是本项目下
        /// </summary>
        /// <param name="strURL">请求的URL</param>
        /// <param name="strRelPath">创建的路径及文件名,路径为相对路径</param>
        /// <returns></returns>
        public bool Nei_Create(string strURL, string strRelPath)
        {
            string strFilePage;
            strFilePage = HttpContext.Current.Server.MapPath(strFilePage);
            StreamWriter sw = null;
    
            //获得aspx的静态html
            try
            {
                if (File.Exists(strFilePage))
                {
                    File.Delete(strFilePage);
                }
                sw = new StreamWriter(strFilePage, false, System.Text.Encoding.GetEncoding("gb2312"));
                System.Net.WebRequest wReq = System.Net.WebRequest.Create(strURL);
                System.Net.WebResponse wResp = wReq.GetRequestStream();
                System.IO.Stream respStream = wResp.GetResponseStream();
                System.IO.StreamReader reader = new StreamReader(respStream, System.Text.Encoding.GetEncoding("gb2312"));
                string strTemp = reader.ReadToEnd();
    
                Regex r1 = new Regex("<input type=\"hidden\" name=\"__EVENTTARGET\".*/>", RegexOptions.IgnoreCase);
                Regex r2 = new Regex("<input type=\"hidden\" name=\"__EVENTARGUMENT\".*/>", RegexOptions.IgnoreCase);
                Regex r3 = new Regex("<input type=\"hidden\" name=\"__VIEWSTATE\".*/>", RegexOptions.IgnoreCase);
    
                Regex r4 = new Regex("<form .*id=\"form1\">", RegexOptions.IgnoreCase);
                Regex r5 = new Regex("</form>");
    
                Regex r6 = new Regex("<input type=\"hidden\" name=\"__EVENTVALIDATION\".*/>", RegexOptions.IgnoreCase);
                strTemp = r1.Replace(strTemp, "");
                strTemp = r2.Replace(strTemp, "");
                strTemp = r3.Replace(strTemp, "");
                strTemp = r4.Replace(strTemp, "");
                strTemp = r5.Replace(strTemp, "");
                strTemp = r6.Replace(strTemp, "");
    
                sw.Write(strTemp);   
            }
            catch(Exception ex)
            {
                HttpContext.Current.Response.Write(ex.Message);
                HttpContext.Current.Response.End();
                return false; //生成到出错
            }
            finally
            {
                sw.Flush();
                sw.Close();
                sw = null;
            }
        }
    
        /// <summary>   
        /// 生成静态页面,生成位置不在本项目下   
        /// </summary>   
        /// <param name="strURL">请求的URL</param>   
        /// <param name="strRelPath">创建的路径及文件名,路径为绝对路径</param>   
        public bool Wai_Create(string strURL, string strRelPath, string filename)
        {
            string strFilePage;
            strFilePage = strRelPath + "\\" + filename;
            StreamWriter sw = null;
            //获得aspx的静态html   
            try
            {
                if (!Directory.Exists(strRelPath))
                {
                    Directory.CreateDirectory(strRelPath);
                }
                if (File.Exists(strFilePage))
                {
                    File.Delete(strFilePage);
                }
                sw = new StreamWriter(strFilePage, false, System.Text.Encoding.GetEncoding("gb2312"));
                System.Net.WebRequest wReq = System.Net.WebRequest.Create(strURL);
                System.Net.WebResponse wResp = wReq.GetResponse();
                System.IO.Stream respStream = wResp.GetResponseStream();
                System.IO.StreamReader reader = new System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding("gb2312"));
                string strTemp = reader.ReadToEnd();
    
                Regex r1 = new Regex("<input type=\"hidden\" name=\"__EVENTTARGET\".*/>", RegexOptions.IgnoreCase);
                Regex r2 = new Regex("<input type=\"hidden\" name=\"__EVENTARGUMENT\".*/>", RegexOptions.IgnoreCase);
                Regex r3 = new Regex("<input type=\"hidden\" name=\"__VIEWSTATE\".*/>", RegexOptions.IgnoreCase);
    
                Regex r4 = new Regex("<form .*id=\"form1\">", RegexOptions.IgnoreCase);
                Regex r5 = new Regex("</form>");
    
                Regex r6 = new Regex("<input type=\"hidden\" name=\"__EVENTVALIDATION\".*/>", RegexOptions.IgnoreCase);
                strTemp = r1.Replace(strTemp, "");
                strTemp = r2.Replace(strTemp, "");
                strTemp = r3.Replace(strTemp, "");
                strTemp = r4.Replace(strTemp, "");
                strTemp = r5.Replace(strTemp, "");
                strTemp = r6.Replace(strTemp, "");
    
                sw.Write(strTemp);
            }
            catch (Exception ex)
            {
                HttpContext.Current.Response.Write(ex.Message);
                HttpContext.Current.Response.End();
                return false;//生成到出错   
            }
            finally
            {
                sw.Flush();
                sw.Close();
                sw = null;
            }
    
            return true;
    
        }   
    
        public void FilePicDelete(string path)
        {
            System.IO.FileInfo file = new System.IO.FileInfo();
            if (file.Exists)
                file.Delete();
        }
    }
  • 相关阅读:
    【SQLServer】SQLServer执行计划运算符第3部分
    【SQLServer】SQLServer执行计划运算符第1部分
    【SQLServer 】SQLServer健康报告
    【MySQL】MariaDB使用connect引擎直接访问SQLServer数据库
    MySQL 报 Can't create more than max_prepared_stmt_count statements (current value: 16382)
    【MySQL】MySQL分区表
    【SQLServer】SQLServer执行计划的类型
    SQL Server日常维护常用的一些脚本整理
    数据库 SQLServer中GUID用法介绍
    sql server 性能优化方法
  • 原文地址:https://www.cnblogs.com/chenqingwei/p/1575044.html
Copyright © 2020-2023  润新知