最简单的ASP生成静态文件代码

以下代码是一段非常简单的ASP生成HTML静态页的实例,简单的说明了HTML静态页的生成。

事先声明:服务器必须支持FSO才能用以下方法生成HTML静态页。

输入一个标题和部分内容,然后点“生成HTML页”,就可以在同目录下生成一个叫“test.html”的静态页。

根据这个原理,可以生成很多其他格式的文件,如.txt文本文件等。

ASP相关代码:
《%
If Request.Form("Content")《>"" Then
Rem 可以自定义文件名
filename = "test.html"
Rem 创建FSO对象
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Rem 将相对路径转换成绝对路径,然后生成html文件
Set htmlwrite= fso.CreateTextFile(Server.MapPath(""&filename&""))
Rem 将文本内容写入文件
htmlwrite.Write "标题(title):" & Request.Form("Title") & "《br>"
htmlwrite.Write "内容(Content):" & Request.Form("Content")
htmlwrite.Close
Rem 释放对象
Set htmlwrite= Nothing
Set fso = Nothing
End If
%>
《form name="form1" method="post" action="">
《input name="Title" id="Title" size=30>
《br>
《br>
《textarea name="Content" cols="50" rows="8">《/textarea>
《br>
《br>
《input type="submit" name="Submit" value="生成HTML页">
《/form>


  根据以上代码,可以添加或灵活修改成自己想要的方式。


  一般静态页,还有个批量生成的概念,这里这个方法当然不适合批量生成。无论是否存在批量生成的概念,生成静态页避免重名都是要做的,下边说下尽量避免重名的方法:

ASP相关代码:
Rem 生成文件名的函数
Function MakeFileName(fname)
fname = fname
fname = Replace(fname,"-","")
fname = Replace(fname," ","")  
fname = Replace(fname,":","")
fname = Replace(fname,"PM","")
fname = Replace(fname,"AM","")
fname = Replace(fname,"上午","")
fname = Replace(fname,"下午","")
MakeFileName = fname
End Function


  此函数在使用时,将系统的Now()函数值传递过去,作为参数,将时间精确到秒,因为时间是一直不断变化,所以重复的几率很低。

  当然,计算机的处理速度用秒来衡量似乎有点太大,所以,有时只是精确到秒,还是会出现重名的几率,此时,就要在这个以时间命名的文件名的基础上,再配合一个随机数。这样几乎就防止了文件名的重名问题。

  一般较常见的是随机生成五位数:

ASP相关代码:
Randomize
RndNum = Int(89999*Rnd+10000)


  这样就可以了,注意:Randomize必须有,否则不能生成不重复的五位数。

  经过以上两个方法获得的文件名的格式:系统当前时间+5位随机数+.html

  例如:200842118443056831.html,其中2008421184430是系统当前时间,而56831则是生成的随机数,后边的.html就是设置的文件的扩展名。要是换成.txt就变成了一个文本文件。

  将开始的简单生成静态页文件的代码做如下修改,就变成了新的生成HTML静态页的方法。与之前不同的是,文件名不在需要人为的去写,而是随机生成的不重复的文件名。

ASP相关代码:
《%
Rem 生成文件名的函数  
Function MakeFileName(fname)  
fname = fname  
fname = Replace(fname,"-","")  
fname = Replace(fname," ","")  
fname = Replace(fname,":","")  
fname = Replace(fname,"PM","")  
fname = Replace(fname,"AM","")  
fname = Replace(fname,"上午","")  
fname = Replace(fname,"下午","")  
MakeFileName = fname  
End Function
Randomize  
RndNum = Int(89999*Rnd+10000)

If Request.Form("Content")《>"" Then  
Rem 可以自定义文件名  
filename = MakeFileName(Now()) & RndNum & ".html"
Rem 创建FSO对象  
Set fso = Server.CreateObject("Scripting.FileSystemObject")  
Rem 将相对路径转换成绝对路径,然后生成html文件  
Set htmlwrite= fso.CreateTextFile(Server.MapPath(""&filename&""))  
Rem 将文本内容写入文件  
htmlwrite.Write "标题(title):" & Request.Form("Title") & "《br>"  
htmlwrite.Write "内容(Content):" & Request.Form("Content")  
htmlwrite.Close  
Rem 释放对象  
Set htmlwrite= Nothing  
Set fso = Nothing  
End If  
%>  
《form name="form1" method="post" action="">  
《input name="Title" id="Title" size=30>  
《br>  
《br>  
《textarea name="Content" cols="50" rows="8">《/textarea>  
《br>  
《br>  
《input type="submit" name="Submit" value="生成HTML页">  
《/form>

方法2:
------------------------------------------------------------------
比如要生成一个正常的index.asp页面,并且用ASP代码调出数据库中的内容,我们建立一个makehtml.asp的页面,加入一个textarea域,假设为name="body",将index.asp在textarea里调出来,如:
《textarea name="body">《!--#include file="index.asp"-->《/textarea>,
再将这个textarea包含在表单中.

makehtml.asp文件代码如下:
《form id="form1" name="form1" method="post" action="">
《textarea name="body">《!--#include file="index.asp"-->
《/textarea>
  《label>
    《input type="submit" name="button" id="button" value="提交" />
  《/label>
《/form>

《%
filename="index.html"
if request("body")《>"" then
set fso = Server.CreateObject("Scripting.FileSystemObject")
set fout= fso.CreateTextFile(server.mappath(""&filename&""))
fout.write request.form("body")
fout.close
set fout=nothing
set fso=nothing
end if
%>


这样index.html文件就生成了。(使用时请用ctrl+h功能把《替换成< )


[本日志由 jinbenli 于 2011-10-26 01:26 PM 更新]
上一篇: 怎么实现让电脑在停电断电后,来电时能自动开机
下一篇: 最简单的ASP生成静态文件代码(带静态生成模版)
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: asp代码
相关日志:
评论: 0 | 引用: 0 | 查看次数: 256
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 关闭 | [img]标签 关闭