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(); } }