网站建设
  简约型网页设计套餐998
  实惠型网站建设套餐2580
  综合型网站制作套餐4980
  网站改版与网站维护
  行业网站建设方案
  大型网站建设解决方案
  企业网站建设流程
  帝网科技网站设计与网站制作
建站FAQ
·网站空间问题解答
·企业邮箱问题解答
 
酷站欣赏
·房产酷站(379)
·综合门户(8 9)
·建筑装饰(603)
·手机通讯(354)
·生活购物(376)
·医疗保健(199)
·文化摄影(602)
·休闲体育(399)
>>更多酷站欣赏
网站优化
·Google(谷歌)优化   ·百度(BaiDu)优化
·雅虎(Yahoo)优化    ·Alexa排名优化   
·Google AdSense   ·DMOZ目录提交  
建站知识
·网站建设知识·网站名词解释·网站运营知识
·网络营销知识·搜索引擎知识·实用技术文摘
网站推广
百度网站推广 google网站推广
搜狐网站推广 网易网站推广
新浪网站推广   雅虎网站推广
  您当前位置: 当前位置:帝网科技 >> web开发 >> .NET专栏 >> 浏览文章
 
 
ASP.NET获取远程网页下载到本地文件
作者:佚名 来源:帝网科技 日期:2009年12月29日 点击数:


  通过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]
       ///         /// 生成网页文件        ///         /// 远程URL        /// 生成文件名路径        /// 目标URL页面编码        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]
        ///         /// 文件夹不存在则创建        ///         /// 文件名所在路径        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预先保存的文件名,这样就可以生成静态文件了。

  以上的做法是不使用模板来生成静态文件的方法,只是换个思路来做,有好建议可以上我的站 一起来交流下。

  作者:dodo

  出处:http://www.xueit.com/html/2009-12-24/21-1630623130921.html

  本文版权归作者和学IT网共有,欢迎转载,但未经作者同意必须保留此段声明,并且保留原文链接。否则保留追究法律责任的权利。

  相关文章
 
·ASP.NET使用log4Net日志组件教程(日志
·ASP.NET MVC 框架
·C#实现的BinaryTree
·WebForms使用System.Web.Routing
·ASP.NET获取远程网页下载到本地文件
·一个“简单”的ASP.NET的服务器控件
·ASP.net与PHP两大网站开发架构优势对比
·教你七招提高.NET网站性能
·ASP.NET未来:简化开发 HTML5性能提升
·ASP.NET实现类似Excel的数据透视表
·FileUpload上传多文件出现错误的解决方
·.NET从优酷专辑中采集所有视频及信息(
·ASP.NET 4中的SEO改进
·详解Asp.net MVC DropDownLists
·提高ASP.NET应用程序性能的几招方法
·asp.net实现51job地区选择效果
·ASP.NET中创建GeoRSS订阅源
·ASP.NET 4.0开发更加简便
·ASP.NET页面间数据传递的方法
·ASP.NET的SEO:使用.ashx文件——排除
 
 

公司环境 | 合作伙伴 | 人才招聘 | 付款方式 | 关于我们

地址:广州市天河区中山大道中120号D805 电话:020-82529556 传真:020-82529556
广州帝网网络科技有限公司 版权所有 粤ICP备08119341号