Chinaz.com - ¤¤°ê¯¸ªø¯¸

°Î¦W§ë½Z §ë½Z«ü«n RSS­q¾\ ¯¸ªø¸ê°T³q§i:
·j¯Á: ±zªº¦ì¸m¡G¥D­¶>ºôµ¸½sµ{>.Net½sµ{>¾\Ū¸ê°T¡GAsp.Net¤¤°ÊºA­¶­±ÂàÀRºA­¶­±

Asp.Net¤¤°ÊºA­¶­±ÂàÀRºA­¶­±

2008-07-03 14:05:27 ¨Ó·½:¤¬Ápºô §@ªÌ:½s¿è¾ã²z ¡i¤j ¤¤ ¤p¡j µû½×¡G4 ±ø

Ãö©ó¦bAsp.Net¤¤°ÊºA­¶­±ÂàÀRºA­¶­±ªº¤èªkºô¤W¤ñ¸û¦h¡Cµ²¦X¹ê»Úªº»Ý¨D¡A§Ú¦bºô¤W§ä¤F¤@¨Ç·½¥N½X¡A¨Ã§@­×§ï¡C²{¦b§â­×§ï«áªº¥N½X¥H¤Î»¡©ú¼g¤@¤U¡C

¤@­Ó¬O¤@­Ó­¶­±Âà´«ªºÃþ¡A¸ÓÃþ³q¹LÀRºA¨ç¼ÆChangfile¡]¡^¨Ó¹ê²{¡A°ÊºA­¶­±¨ìÀRºA­¶­±ªºÂà´«¡C

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;
using System.IO;

/**//// ¡Õsummary¡Ö
/// Summary description for HtmlProxy
/// ¡Õ/summary¡Ö
public class HtmlProxy
...{
public HtmlProxy()
...{
}
public static bool ChangeFile(int id)
...{
string filename = HttpContext.Current.Server.MapPath("Post_" + id + ".html");
//¹Á¸ÕŪ¨ú¤w¦³¤å¥ó
Stream st = GetFileStream(filename);
//¦pªG¤å¥ó¦s¦b¨Ã¥BŪ¨ú¦¨¥\
if (st != null)
...{
using (st)
...{
StreamToStream(st, HttpContext.Current.Response.OutputStream);
return true;
//Response.End();
}
}
else
...{
StringWriter sw = new StringWriter();
HttpContext.Current.Server.Execute("ForumDetail.aspx?PID=" + id, sw);

string content = sw.ToString();
//¼g¶i¤å¥ó
try
...{
using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.Write))
...{
using (StreamWriter stw = new StreamWriter(fs, HttpContext.Current.Response.ContentEncoding))
...{
stw.Write(content);
}
}
¡@return true;
}
catch ...{ return false; }
}
}

private static Stream GetFileStream(string filename)
...{
try
...{
DateTime dt = File.GetLastWriteTime(filename);
TimeSpan ts = dt - DateTime.Now;
if (ts.TotalHours ¡Ö1)
...{
//¤@¤p®É«á¹L´Á
return null;
}
return new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
}
catch ...{ return null; }
}
static public void StreamToStream(Stream src, Stream dst)
...{
¡@¡@byte[] buf = new byte[4096];
¡@¡@while (true)
...{
int c = src.Read(buf, 0, buf.Length);
if (c == 0)
return;
dst.Write(buf, 0, c);
¡@}
¡@}
}
¡@¡@¦b­¶­±¤å¥ó¤¤¡AForURL.aspxªº«á»O¥N½X¦p¤U¡G
protected void Page_Load(object sender, EventArgs e)
...{
try
...{
int id = int.Parse(Request.QueryString["PID"]);
if(HtmlProxy.ChangeFile(id))
...{
¡@Response.Redirect("Post_" + id + ".html");
}
¡@else
...{
¡@Response.Redirect("Post.aspx?PID=" + id );
}
}
¡@catch ...{
}
}



Tags¡GASP.NET   °ÊºA­¶­±   ÀRºA­¶­±  
³d¥ô½s¿è¡G¤ô¦â¬Ó´Â
  • ½Ð¤å©ú°Ñ»P°Q½×¡A¸T¤îº©½|§ðÀ»¡C ¥Î¤á¦W¡G ¡]·sª`¥U¡^ ±K½X¡G °Î¦W¡G
    µû½×Á`¼Æ¡G ±ø [ ¬d¬Ý¥þ³¡ ] ºô¤Íµû½×
    Ãö©ó§Ú­Ì - Áp«Y§Ú­Ì - ¼s§iªA°È - ¤Í±¡Ãì±µ - ºô¯¸¦a¹Ï - ª©ÅvÁn©ú - ¤H¤~©Û¸u - À°§U