ASP生成HTML静态文件之组件封装
2012-08-27 14:31
525 查看
一、引用
Microsoft Active Server Pages Object Library Microsoft ActiveX Data Objects 2.7 Library COM+ Services Type Library Microsft Scripting Runtime
二、设置
工程名:mmAsp 类模块:doHtml
三、代码
Private mmOSM, mmFSO Private mmVarArr, mmValArr Private mmCharset '编码GB2312或UTF-8 Private mmTplPath '模板文件的绝对路径 Private mmHtmPath '生成HTML文件的绝对路径 Private strHtml, i Private Response As Response Private Request As Request Private Server As Server Private Application As Application Private Session As Session Private objContext As ObjectContext Private Sub Class_Initialize() On Error Resume Next Set objContext = GetObjectContext() Set Response = objContext("Response") Set Request = objContext("Request") Set Server = objContext("Server") Set Application = objContext("Application") Set Session = objContext("Session") '================================================================================ Set mmOSM = New ADODB.Stream If Err.Number = -2147221005 Then Response.Write "非常遗憾,您的主机不支持ADODB.Stream,不能使用本程序" Err.Clear Response.End End If Set mmFSO = New FileSystemObject If Err.Number <> 0 Then 'Err.Number值 429-组件未注册 48-没有权限 Response.Write "您的空间不支持FSO,或者没有相关权限,不能使用本程序。" Err.Clear Response.End End If mmCharset = "GB2312" '默认采用GB2312编码[值为UTF-8或GB2312] End Sub Private Sub Class_Terminate() Set mmOSM = Nothing: mmOSM = Null Set mmFSO = Nothing: mmFSO = Null Set ojbSContext = Nothing Set Response = Nothing Set Request = Nothing Set Server = Nothing Set Application = Nothing Set Session = Nothing End Sub '版本信息 Public Property Get Version() Version = "HTML静态文件操作类v1.0" End Property '================================================================ 'Charset 获取文件编码 UTF-8 或 GB2312 '================================================================ Public Property Let Charset(ByVal TmpCharset) mmCharset = TmpCharset End Property '================================================================ 'TplPath 获取模板文件所在的绝对路径 '================================================================ Public Property Let TplPath(ByVal TmpTplPath) mmTplPath = TmpTplPath End Property '================================================================ 'HtmPath 获取生成HTML所在的绝对路径 '================================================================ Public Property Let HtmPath(ByVal TmpHtmPath) mmHtmPath = TmpHtmPath End Property '================================================================ 'VarArr 获取变量数组 '================================================================ Public Property Let VarArr(ByVal TmpVarArr) mmVarArr = TmpVarArr End Property '================================================================ 'ValueArr 获取字段对应的值数组 '================================================================ Public Property Let ValArr(ByVal TmpValArr) mmValArr = TmpValArr End Property '================================================================ '生成HTML文件 '================================================================ Public Sub toHtml() CreateFolder '创建目录 strHtml = LoadHTemplate For i = 0 To UBound(mmVarArr) strHtml = Replace(strHtml, mmVarArr(i), mmValArr(i)) Next On Error Resume Next With mmOSM .Type = 2 .Mode = 3 .Charset = mmCharset .Open .WriteText strHtml .SaveToFile mmHtmPath, 2 .Flush .Close End With If Err.Number <> 0 Then Response.Write "写入文件失败!" Err.Clear Response.End End If End Sub '********************************************** '目的: 载入HTML模板 '返回: HTML模板内容 '********************************************** Private Function LoadHTemplate() On Error Resume Next With mmOSM .Type = 2 .Mode = 3 .Open .LoadFromFile mmTplPath If Err.Number <> 0 Then Response.Write "模板文件" & mmTplPath & "无法被打开,请检查文件是否存在!" Err.Clear Response.End End If .Charset = mmCharset .Position = 2 LoadHTemplate = .ReadText '返回读取的内容 .Close End With End Function '================================================================ 'CreateFolder 递归创建目录函数 '================================================================ Private Sub CreateFolder() On Error Resume Next Dim mmPathArr, mmCursor mmPathArr = Split(mmHtmPath, "\") For i = 0 To UBound(mmPathArr) - 1 mmCursor = mmCursor & mmPathArr(i) & "\" If Not mmFSO.FolderExists(mmCursor) Then mmFSO.CreateFolder (mmCursor) If Err.Number <> 0 Then Response.Write "创建目录失败!" Err.Clear Response.End End If End If Next End Sub '================================================================ 'delFile 删除文件 '================================================================ Public Sub DelFile() On Error Resume Next mmFSO.DeleteFile Server.MapPath(mmHtmPath) 'Err.Number值 53-文件不存在 70-删除失败,可能是权限不够或文件只读 End Sub
四、生成DLL(略)
五、实例
1、模板文件
{$title}<br> <hr> 发布时间:{$time} 文章来源:{$from} <p> {$content}
2、生成文件
<% Dim ClsFSO Set ClsFSO=Server.createobject("mmASP.doHtml") With ClsFSO .Charset="GB2312"'或UTF-8,可省略,省略默认编码为GB2312 .TplPath=Server.MapPath("/Template/news.txt")'模板文件,相对于网站根目录路径(以/开始) .HtmPath=Server.MapPath("/html/news/file.htm")'准备生成的文件所在位置,相对于网站根目录路径(以/开始) .VarArr=Array("{$title}","{$time}","{$from}","{$content}") '加载替换变量数组 .ValArr=Array("这是文章标题",now,"<a href='/'>www.asp163.com</a>","这里是文章内容") .toHtml End With Set ClsFSO=Nothing:ClsFSO=NULL %>生成文件成功。
3、删除文件
<% '删除HTML文件 Dim ClsFSO Set ClsFSO=Server.createobject("mmASP.doHtml") With ClsFSO .HtmPath=Server.MapPath("/html/news/file.htm") .DelFile End With Set ClsFSO=Nothing:ClsFSO=NULL %>删除文件成功。
六、结束
提示:类或Dll,出错时后,显示出错信息,并执行Response.End后,仍会执行Class_Terminate()相关文章推荐
- ASP.NET生成HTML静态文件的两种途径
- ASP网站数据采集程序制作:一个采集入库生成本地文件的几个FUCTION(可用来生成HTML静态网页)
- ASP生成静态HTML文件
- ASP网站数据采集程序制作:一个采集入库生成本地文件的几个FUCTION(可用来生成HTML静态网页)
- ASP网站数据采集程序制作:一个采集入库生成本地文件的几个FUCTION(可用来生成HTML静态网页)
- ASP.NET页面生成静态HTML页面
- 使用ASP.NET模板生成HTML静态页面的五种方案
- ASP生成静态文件编码为UTF-8格式的HTML文件
- asp 生成Html静态页面
- 在ASP中使用FSO组件生成HTML页面
- 利用Freemarker生成html静态页面,也可利用模版功能生成不同格式的文件
- ASP动态网页生成静态Html网页文件技术
- Asp.net如何生成html静态页面
- jsp自动生成静态文件(html)
- ASP.NET生成静态HTML页面
- ASP生成静态文件
- 生成静态文件的新闻系统核心代码(asp.net C#)
- asp定时生成静态HTML的代码
- ASP生成静态html
- .NET/ASP.NET 4.5 Bundle组件(捆绑、缩小静态文件)