`
pcajax
  • 浏览: 2173831 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ASP.NET获取远程网页下载到本地文件

阅读更多

通过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]
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.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]
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.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]
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.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]
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.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预先保存的文件名,这样就可以生成静态文件了。

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

分享到:
评论

相关推荐

    asp.net C# 利用FTP 远程下载文件

    总的来说,通过利用C#的`System.Net`命名空间,你可以方便地在ASP.NET环境中实现FTP远程文件下载功能,为用户提供高效、安全的文件获取服务。在实际开发中,还需要考虑错误处理、性能优化以及安全性等问题,确保应用...

    ASP.NET中文件上传下载方法集合

    在ASP.NET中,文件上传和下载涉及到多个方面,包括配置文件的调整、文件信息的封装、文件格式的验证、文件内容的处理以及与远程服务器的交互。理解并熟练掌握这些技术对于开发功能完善的Web应用至关重要。在实际项目...

    asp.net 远程抓取数据生成静态页面Demo

    在IT行业中,Asp.NET是一种常用的Web开发框架,由微软公司提供,用于构建高效、可扩展的Web应用程序。本教程将重点关注如何利用Asp.NET进行数据抓取并生成静态页面,这在提升网站性能、减轻服务器负担以及搜索引擎...

    Asp.net本地调试工具

    ASP.NET本地调试是开发ASP.NET应用程序时不可或缺的一个环节,它允许开发者在本地计算机上运行、测试和调试代码,而无需部署到远程服务器。这极大地提高了开发效率,减少了部署过程中的错误,同时也使得问题定位和...

    asp.net利用ftp上传文件实现示例代码

    在ASP.NET中,FTP(File Transfer Protocol)上传文件是一种常见的任务,特别是在处理大文件或需要远程存储时。本文将深入探讨如何使用ASP.NET通过FTP协议实现文件上传,并提供一个示例代码片段,帮助解决传统ASP...

    [ASP.NET]web实现用FTP上传、下载文件

    在ASP.NET中,FTP(File Transfer Protocol)上传和下载文件是一项常见的任务,特别是在构建Web应用程序时,例如文件管理系统或者在线协作平台。以下是对这个主题的详细讲解。 首先,我们需要了解FTP的基本概念。...

    使用JS自动从服务器端下载文件到本地

    标题“使用JS自动从服务器端下载文件到本地”涉及到的核心技术是JavaScript的文件操作和HTTP交互,主要在前端实现从服务器获取文件并保存到本地的功能。这篇博客文章可能讲解了如何利用JavaScript的API来实现这一...

    Asp.net C#生成pdf文件

    如果HTML是从远程服务器获取的,你可能需要先将其下载到本地,然后进行转换。 此外,Pechkin还支持其他高级配置选项,例如设置页面大小、页边距、字体、页面方向等。通过修改`ObjectConfig`的其他设置,你可以...

    ASP.NET的网页代码模型及生命周期

    在ASP.NET中,可以创建ASP.NET网站和ASP.NET应用程序,ASP.NET网站的网页元素包含可视元素和页面逻辑元素,并不包含designer.cs文件。而ASP.NET应用程序包含designer.cs文件。创建ASP.NET网站,首先需要创建网站,...

    asp.net 的ftp列表及下载

    这段代码首先获取FTP服务器上指定文件的流,然后创建一个本地文件流,并将FTP文件流的内容复制到本地文件。注意,在操作完成后要关闭所有打开的流。 ### 异步操作和性能优化 在ASP.NET中,考虑到Web应用的并发性和...

    ASP.Net调用摄像头拍照

    ASP.NET调用摄像头拍照是一个常见的前端应用场景,尤其在开发在线教育、远程办公或者互动娱乐类网站时非常有用。本文将详细介绍如何使用JavaScript与ASP.NET结合,实现调用用户计算机的摄像头进行拍照的功能。 首先...

    asp.net读取串口数据

    然后,ASP.NET Web应用可以通过HTTP请求获取这些数据,展示在网页上。 以下是一个简单的步骤概述: 1. **创建Windows服务**:使用C#或Visual Basic .NET编写一个Windows服务,该服务包含读取串口数据的逻辑。服务...

    美观的ASP.NET 网络文件夹,可在项目中直接使用

    这个应用允许用户在Web浏览器中浏览、操作服务器上的文件和文件夹,如同操作本地文件系统一样,极大地提高了远程协作和文件共享的效率。在项目中直接使用这样的组件,可以提升用户体验,简化文件管理功能的开发工作...

    ASP.NET2.0 c# 获取浏览器,IP,URL,操作系统

    通过调用`DownloadData`方法,可以将指定URL的内容作为字节数组下载到本地,再通过合适的编码方式转换成字符串,如`Encoding.Default.GetString(pagedata)`或`Encoding.UTF8.GetString(pagedata)`,从而获取网页的...

    基于ASP.Net的网络资源管理器源程序代码

    网络资源管理器的主要目标是模仿本地文件系统的操作方式,使用户能够通过Web界面实现对远程服务器上文件和目录的浏览、上传、下载、删除等操作。在ASP.Net中,我们可以利用多种技术来实现这一目标: 1. **控件使用*...

    asp.net程序部署后用c#调用cmd不运行方案

    题目中的描述和代码片段揭示了一个具体的应用场景:在ASP.NET程序中,开发人员试图将PDF文件转换为SWF格式,使用了名为“pdf2swf.exe”的工具,并且希望通过CMD命令行来执行这个转换过程。然而,在部署后,该功能并...

    Asp.net Ajax框架教程

    14. 多语言支持:ASP.NET AJAX框架支持多语功能,提供了服务端和客户端使用全局及本地资源文件的示例。 本教程由作者【夜战鹰】【ChengKing(ZhengJian)】精心整理,包含26个实例,涵盖了开发中常见的应用场景和技术...

    ASP.NET下载到桌面快捷方式代码

    根据提供的文件信息,本文将详细解释如何在ASP.NET应用程序中创建一个可以下载到用户桌面的快捷方式图标(.url文件)。此方法适用于希望为用户提供快速访问应用程序入口的应用开发者。 ### ASP.NET生成桌面快捷方式...

Global site tag (gtag.js) - Google Analytics