- 浏览: 2173831 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1878)
- [网站分类]ASP.NET (141)
- [网站分类]C# (80)
- [随笔分类]NET知识库 (80)
- [随笔分类]摘抄文字[非技术] (3)
- [随笔分类]养生保健 (4)
- [网站分类]读书区 (16)
- [随笔分类]赚钱 (7)
- [网站分类].NET新手区 (233)
- [随笔分类]网站 (75)
- [网站分类]企业信息化其他 (4)
- [网站分类]首页候选区 (34)
- [网站分类]转载区 (12)
- [网站分类]SQL Server (16)
- [网站分类]程序人生 (7)
- [网站分类]WinForm (2)
- [随笔分类]错误集 (12)
- [网站分类]JavaScript (3)
- [随笔分类]小说九鼎记 (69)
- [随笔分类]技术文章 (15)
- [网站分类]求职面试 (3)
- [网站分类]其他技术区 (6)
- [网站分类]非技术区 (10)
- [发布至博客园首页] (5)
- [网站分类]jQuery (6)
- [网站分类].NET精华区 (6)
- [网站分类]Html/Css (10)
- [随笔分类]加速及SEO (10)
- [网站分类]Google开发 (4)
- [随笔分类]旅游备注 (2)
- [网站分类]架构设计 (3)
- [网站分类]Linux (23)
- [随笔分类]重要注册 (3)
- [随笔分类]Linux+PHP (10)
- [网站分类]PHP (11)
- [网站分类]VS2010 (2)
- [网站分类]CLR (1)
- [网站分类]C++ (1)
- [网站分类]ASP.NET MVC (2)
- [网站分类]项目与团队管理 (1)
- [随笔分类]个人总结 (1)
- [随笔分类]问题集 (3)
- [网站分类]代码与软件发布 (1)
- [网站分类]Android开发 (1)
- [网站分类]MySQL (1)
- [网站分类]开源研究 (6)
- ddd (0)
- 好久没写blog了 (0)
- sqlserver (2)
最新评论
-
JamesLiuX:
博主,能组个队么,我是Freelancer新手。
Freelancer.com(原GAF – GetAFreelancer)帐户里的钱如何取出? -
yw10260609:
我认为在混淆前,最好把相关代码备份一下比较好,不然项目完成后, ...
DotFuscator 小记 -
日月葬花魂:
大哥 能 加我个QQ 交流一下嘛 ?51264722 我Q ...
web应用程序和Web网站区别 -
iaimg:
我想问下嵌入delphi写的程序总是出现窗体后面感觉有个主窗体 ...
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部 -
iaimg:
代码地址下不了啊!
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部
通过ASP.NET生成静态文件的文章网上有好多文章,而本站也有不少的相关文章教程,通常ASP.NET生成静态文件的做法是使用文件流读取模板内容,之后替换模板内容中相关关键字,再生成静态文件。本文的做法另类一点,通过URL来生成静态文件,下面来看下是如何实现吧。
创建一个TestWeb.aspx文件,这个文件后台.cs的代码做法步骤如下:
第1步:先引用如下命令空间
using System;
using System.Net;
using System.IO;
using System.Text;
第2步:创建获取远程URL并生成文件的方法与文件夹不存在则自动建立方法
获取远程URL并生成文件的代码:
<!-- 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。
文件夹不存在则自动建立的代码:
<!-- 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()方法,以获取百度首页生成静态文件
<!-- 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 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预先保存的文件名,这样就可以生成静态文件了。
以上的做法是不使用模板来生成静态文件的方法,只是换个思路来做,有好建议可以上我的站 一起来交流下。
发表评论
-
where T:new() 是什么意思
2014-04-18 09:26 1463where T:new() 是什么意思 经常看到方法后面 ... -
为何在wpf中textbox的值有时不会实时的变化
2013-11-03 19:31 1404TextBox绑定view model 中的一个属性,如果T ... -
好久没写blog了
2012-05-21 18:43 2好久没写blog了 -
使用MySQL命令行修改密码
2011-07-27 20:37 1054使用MySQL命令行修改密码 下面为您额极少的My ... -
更改lnmp安装后的MySQL密码方法
2011-07-27 20:36 1426更改lnmp安装后的MySQL密码方法 2011-07- ... -
mysql-bin.000001文件的来源及处理方法[转]
2011-07-27 20:31 1335mysql-bin.000001文件的来 ... -
lnmp vps下mysql备份
2011-07-27 20:31 1040mysql-bin.000001文件的来 ... -
N点虚拟主机管理系统安装图解
2011-07-25 00:13 1839<script type="text/j ... -
CentOS 6.0正式版终于发布
2011-07-24 10:29 1601CentOS 6.0新在什么地方 ... -
关系数据库还是NoSQL数据库
2011-07-22 16:35 947关系数据库还是NoSQL数据库 作者 孙立 发布于 2 ... -
关系数据库还是NoSQL数据库
2011-07-22 16:31 1081关系数据库还是NoSQL数据库 作者 孙立 发布于 2 ... -
NoSQL开篇——为什么要使用NoSQL
2011-07-22 16:26 1045NoSQL开篇——为什么要使用NoSQL 作者 孙立 发布 ... -
HubbleDotNet开源全文搜索数据库项目--技术详解
2011-07-21 17:49 1174HubbleDotNet开源全文搜索数据库项目--技术 ... -
细说 Form (表单)
2011-07-21 12:27 1256细说 Form (表单) Form(表单)对于每 ... -
ASP.NET(C#)常用数据加密和解密方法汇总
2011-07-21 12:26 1365应同事所邀把ASP.NET(C#)常用数据加密和解密方法 ... -
ds
2011-07-21 09:44 1010blog%5Borigin%5D=0&blog%5Bc ... -
ds
2011-07-21 09:42 970请输入文章内容dsafas -
test
2011-07-21 09:31 913testestestestestestestestestest ... -
判断两个数组中是否存在相同的数字
2010-06-17 09:03 2174判断两个数组中是否存在相同的数字 给定两个排好序的数 ... -
用C#读取XML文档
2010-04-06 09:15 1569本文将以一个非常简单 ...
相关推荐
总的来说,通过利用C#的`System.Net`命名空间,你可以方便地在ASP.NET环境中实现FTP远程文件下载功能,为用户提供高效、安全的文件获取服务。在实际开发中,还需要考虑错误处理、性能优化以及安全性等问题,确保应用...
在ASP.NET中,文件上传和下载涉及到多个方面,包括配置文件的调整、文件信息的封装、文件格式的验证、文件内容的处理以及与远程服务器的交互。理解并熟练掌握这些技术对于开发功能完善的Web应用至关重要。在实际项目...
在IT行业中,Asp.NET是一种常用的Web开发框架,由微软公司提供,用于构建高效、可扩展的Web应用程序。本教程将重点关注如何利用Asp.NET进行数据抓取并生成静态页面,这在提升网站性能、减轻服务器负担以及搜索引擎...
ASP.NET本地调试是开发ASP.NET应用程序时不可或缺的一个环节,它允许开发者在本地计算机上运行、测试和调试代码,而无需部署到远程服务器。这极大地提高了开发效率,减少了部署过程中的错误,同时也使得问题定位和...
在ASP.NET中,FTP(File Transfer Protocol)上传文件是一种常见的任务,特别是在处理大文件或需要远程存储时。本文将深入探讨如何使用ASP.NET通过FTP协议实现文件上传,并提供一个示例代码片段,帮助解决传统ASP...
在ASP.NET中,FTP(File Transfer Protocol)上传和下载文件是一项常见的任务,特别是在构建Web应用程序时,例如文件管理系统或者在线协作平台。以下是对这个主题的详细讲解。 首先,我们需要了解FTP的基本概念。...
标题“使用JS自动从服务器端下载文件到本地”涉及到的核心技术是JavaScript的文件操作和HTTP交互,主要在前端实现从服务器获取文件并保存到本地的功能。这篇博客文章可能讲解了如何利用JavaScript的API来实现这一...
如果HTML是从远程服务器获取的,你可能需要先将其下载到本地,然后进行转换。 此外,Pechkin还支持其他高级配置选项,例如设置页面大小、页边距、字体、页面方向等。通过修改`ObjectConfig`的其他设置,你可以...
在ASP.NET中,可以创建ASP.NET网站和ASP.NET应用程序,ASP.NET网站的网页元素包含可视元素和页面逻辑元素,并不包含designer.cs文件。而ASP.NET应用程序包含designer.cs文件。创建ASP.NET网站,首先需要创建网站,...
这段代码首先获取FTP服务器上指定文件的流,然后创建一个本地文件流,并将FTP文件流的内容复制到本地文件。注意,在操作完成后要关闭所有打开的流。 ### 异步操作和性能优化 在ASP.NET中,考虑到Web应用的并发性和...
ASP.NET调用摄像头拍照是一个常见的前端应用场景,尤其在开发在线教育、远程办公或者互动娱乐类网站时非常有用。本文将详细介绍如何使用JavaScript与ASP.NET结合,实现调用用户计算机的摄像头进行拍照的功能。 首先...
然后,ASP.NET Web应用可以通过HTTP请求获取这些数据,展示在网页上。 以下是一个简单的步骤概述: 1. **创建Windows服务**:使用C#或Visual Basic .NET编写一个Windows服务,该服务包含读取串口数据的逻辑。服务...
这个应用允许用户在Web浏览器中浏览、操作服务器上的文件和文件夹,如同操作本地文件系统一样,极大地提高了远程协作和文件共享的效率。在项目中直接使用这样的组件,可以提升用户体验,简化文件管理功能的开发工作...
通过调用`DownloadData`方法,可以将指定URL的内容作为字节数组下载到本地,再通过合适的编码方式转换成字符串,如`Encoding.Default.GetString(pagedata)`或`Encoding.UTF8.GetString(pagedata)`,从而获取网页的...
网络资源管理器的主要目标是模仿本地文件系统的操作方式,使用户能够通过Web界面实现对远程服务器上文件和目录的浏览、上传、下载、删除等操作。在ASP.Net中,我们可以利用多种技术来实现这一目标: 1. **控件使用*...
题目中的描述和代码片段揭示了一个具体的应用场景:在ASP.NET程序中,开发人员试图将PDF文件转换为SWF格式,使用了名为“pdf2swf.exe”的工具,并且希望通过CMD命令行来执行这个转换过程。然而,在部署后,该功能并...
14. 多语言支持:ASP.NET AJAX框架支持多语功能,提供了服务端和客户端使用全局及本地资源文件的示例。 本教程由作者【夜战鹰】【ChengKing(ZhengJian)】精心整理,包含26个实例,涵盖了开发中常见的应用场景和技术...
根据提供的文件信息,本文将详细解释如何在ASP.NET应用程序中创建一个可以下载到用户桌面的快捷方式图标(.url文件)。此方法适用于希望为用户提供快速访问应用程序入口的应用开发者。 ### ASP.NET生成桌面快捷方式...