日期:2014-05-18  浏览次数:20456 次

请问动态网页如何自动生成html文件
看见别人做的动态网页,
在被点击时会自动生成html文件
哪位大哥知道这是怎么做的。

------解决方案--------------------
C# code
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.IO;
using System.Text;

/// <summary>
/// WriteFile 的摘要说明
/// </summary>
public class WriteFile
{
 public WriteFile()
 {
 
 }
    public static bool createHtml(string[] strnewsHtml,string[] stroldHtml,string strModeFilePath,string strPath)
    {
        bool flag = false;
        StreamReader sr = null;
        StreamWriter sw = null;
        string filepath = HttpContext.Current.Server.MapPath(strModeFilePath);
        Encoding code = Encoding.GetEncoding("gb2312");
        string s = string.Empty;
        try
        {
            sr = new StreamReader(filepath,code);
            s = sr.ReadToEnd();
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            sr.Close();
        }
        try
        {
            for (int i = 0; i < strnewsHtml.Length; i++)
            {
                s = s.Replace(stroldHtml[i], strnewsHtml[i]);
            }
            sw = new StreamWriter(HttpContext.Current.Server.MapPath(strPath), false, code);
            sw.Write(s);
            flag = true;
        }
        catch (Exception ex)
        {
            flag = false;
            throw ex;
        }
        finally
        {
            sw.Flush();
            sw.Close();
        }
        return flag;
    }
    public static bool UpdateHtmlPage(string[] strNewsHtml, string[] strStartHtml, string[] strEndHtml, string strHtml)
    {
        bool Flage = false;
        StreamReader ReaderFile = null;
        StreamWriter WrirteFile = null;
        string FilePath = HttpContext.Current.Server.MapPath(strHtml);
        Encoding Code = Encoding.GetEncoding("gb2312");
        string strFile = string.Empty;
        try
        {
            ReaderFile = new StreamReader(FilePath, Code);
            strFile = ReaderFile.ReadToEnd();

        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            ReaderFile.Close();
        }
        try
        {
            int intLengTh = strNewsHtml.Length;
            for (int i = 0; i < intLengTh; i++)
            {
                int intStart = strFile.IndexOf(strStartHtml[i]) + strStartHtml[i].Length;
                int intEnd = strFile.IndexOf(strEndHtml[i]);
                string strOldHtml = strFile.Substring(intStart, intEnd - intStart);
                strFile = strFile.Replace(strOldHtml, strNewsHtml[i]);
            }
            WrirteFile = new StreamWriter(FilePath, false, Code);
            WrirteFile.Write(strFile);
            Flage = true;
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {

            WrirteFile.Flush();
            WrirteFile.Close();
        }
        return Flage;
    }

}

调用公共类:
----------------------------------------
protected void Button2_Click(object sender, EventArgs e)
    {
        string NewsTitle = this.TextBox1.Text;
        string NewsKindName = this.DropDownList1.SelectedItem.Text;
        string NewsBody = this.WebEditor1.Text;
        DateTime PubTime = DateTime.Now;
        string UserName = Session["UserName"].ToString();
        Response.Write(NewsKindName);
        string[] strNewsHtml = new string[] { NewsTitle, NewsKindName, NewsBody, PubTime.ToString(), UserName };
        string[] strOldHtml = new string[] { "@Title", "@NewsKInd", "@NewsBody", "@PubTime", "@UserName" };
        string strFileName = DateTime.Now.ToString("ddhhmmss") + ".html&