通过ASP.NET天生静态文件的文章网上有很多多少文章,而本站也有不少的相干文章教程,通常ASP.NET天生静态文件的做法是利用文件流读取模板内容,之后更换模板内容中相干关键字,再天生静态文件。本文的做法另类一点,通过URL来天生静态文件,下面来看下是怎样实现吧。
创建一个TestWeb.aspx文件,这个文件背景.cs的代码做法步调如下:
第1步:先引用如下下令空间
using System;
using System.Net;
using System.IO;
using System.Text;
第2步:创建获取长途URL并天生文件的要领与文件夹不存在则主动创建要领
获取长途URL并天生文件的代码:
C# Code [http://www.xueit.com]
/// <summary>
/// 天生网页文件
/// </summary>
/// <param name="url">长途URL</param>
/// <param name="filename">天生文件名路径</param>
/// <param name="pagecode">目标URL页面编码</param> protected void DownUrltoFile(string url, string filename, string pagecode)
{
try
{
//编码 Encoding encode = Encoding.GetEncoding(pagecode);
//恳求URL HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
//设置超时(10秒) req.Timeout = 10000;
this.NotFolderIsCreate(filename);
//获取Response HttpWebResponse rep = (HttpWebResponse)req.GetResponse();
//创建StreamReader与StreamWriter文件流东西 StreamReader sr = new StreamReader(rep.GetResponseStream(),encode);
StreamWriter sw = new StreamWriter(Server.MapPath(filename), false,encode);
//写入内容 sw.Write(sr.ReadToEnd());
//清该当前缓存区,并将缓存写入文件 sw.Flush();
//开释相干东西资源 sw.Close();
sw.Dispose();
sr.Close();
sr.Dispose();
Response.Write("天生文件" filename "告成");
}
catch (Exception ex)
{
Response.Write("天生文件" filename "失败,缘故起因:" ex.Message);
}
}
以上代码关键知识点,通过HttpWebRequest、HttpWebResponse恳求获取长途URL数据,之后利用StreamReader、StreamWriter文件流读写数据写入文件,细致另有编码Encoding。
文件夹不存在则主动创建的代码:
C# Code [http://www.xueit.com]
/// <summary>
/// 文件夹不存在则创建
/// </summary>
/// <param name="filename">文件名地点路径</param> protected void NotFolderIsCreate(string filename)
{
string fileAtDir = Server.MapPath(Path.GetDirectoryName(filename));
if (!Directory.Exists(fileAtDir))
Directory.CreateDirectory(fileAtDir);
}
下面我们看下怎样调用天生文件。
在Page_Load中调用DownUrltoFile()要领,以获取百度首页天生静态文件
C# Code [http://www.xueit.com]
protected void Page_Load(object sender, EventArgs e)
{
//调用要领 this.DownUrltoFile("http://www.baidu.com", "html/baidu.htm", "GB2312");
}
由于百度首页是Gb2312编码,以是上面的调用要领输入GB2312。我们来看下天生的结果图:
运行结果图1
天生后文件
打开天生的静态文件
怎么样,不错吧。
有了这个要领,可以很大略的通过动态文件URL来天生静态文件了,比如:
消息资讯表article有一个字段htmlFile,生存资讯文件名的,内容如html/news/20091224-001.html,在背景添加生存文章后,调用要领:
Code [http://www.xueit.com]
DownUrltoFile("http://www.xueit.com/show.aspx?pid=1", "html/news/20091224-001.html", "GB2312");
此中URL:http://www.xueit.com/show.aspx?pid=1 是动态表现文章,html/news/20091224-001.html是表字段htmlFile预老师存的文件名,如许就可以天生静态文件了。
以上的做法是不利用模板来天生静态文件的要领,只是换个思路来做,有好发起可以上我的站 一起来交换下。