| 方法一:FSO
 Set fs = CreateObject("Scripting.FileSystemObject")
 NewFile=Server.MapPath("/asp/chap06/at/newfile.html")
 '新建一文件/newfile.html,若该文件已存在,则覆盖它
 Set a = fs.CreateTextFile(NewFile, True)
 Response.Write"新文件已建立!"
 a.close
 File=Server.MapPath("newfile.html")
 Set txt=fs.OpenTextFile(File,8,True) '打开成可以在结尾写入数据的文件
 data1="这句话是使用WriteLine方法写入的哦!~~"
 txt.WriteLine data1
 data2="这句话是使用Write方法写入的哦!~~"
 txt.Write data2
 txt.Close
 
 方法二:XMLHTTP
 
 <%
 Set xml = Server.CreateObject("Microsoft.XMLHTTP")
 '把下面的地址替换成你的首页的文件地址,一定要用http://开头的绝对路径,不能写相对路径
 xml.Open "GET", "http://www.phpup.com", False
 xml.Send
 BodyText=xml.ResponseBody
 BodyText=BytesToBstr(BodyText,"gb2312")
 Set xml = Nothing
 Dim fso, MyFile
 Set fso = CreateObject("Scripting.FileSystemObject")
 Set MyFile= fso.CreateTextFile(server.MapPath("aa.htm"), True)
 MyFile.WriteLine(BodyText)
 MyFile.Close
 
 其他:
 
 1
 
 下面的例子是将、index.asp?id=1/index.asp?id=2/index.asp?id=3/这三个动态
 页面,分别生成ndex1.htm,index2.htm,index3.htm存在根目录下面:
 
 
 <%
 dim strUrl,Item_Classid,id,FileName,FilePath,Do_Url,Html_Temp
 Html_Temp="<UL>"
 For i=1 To 3
 Html_Temp = Html_Temp&"<LI>"
 Item_Classid = i
 FileName = "Index"&Item_Classid&".htm"
 FilePath = Server.MapPath("/")&"\"&FileName Html_Temp = Html_Temp&FilePath&"</LI>"
 Do_Url = "http://"
 Do_Url = Do_Url&Request.ServerVariables("SERVER_NAME")&"/main/index.asp"
 Do_Url = Do_Url&"?Item_Classid="&Item_Classid
 
 
 strUrl = Do_Url
 dim objXmlHttp
 set objXmlHttp = Server.createObject("Microsoft.XMLHTTP")
 objXmlHttp.open "GET",strUrl,false
 objXmlHttp.send()
 Dim binFileData
 binFileData = objXmlHttp.responseBody
 Dim objAdoStream
 set objAdoStream = Server.createObject("ADODB.Stream")
 objAdoStream.Type = 1
 objAdoStream.Open()
 objAdoStream.Write(binFileData)
 objAdoStream.SaveToFile FilePath,2
 objAdoStream.Close()
 
 Next
 Html_Temp = Html_Temp&"<UL>"
 %>
 
 <%
 Response.Write ( "成功生成文件:" )
 Response.Write ( "<BR>" )
 Response.Write Html_Temp
 %>
 
 Function BytesToBstr(body,Cset)
 dim objstream
 set objstream = Server.CreateObject("adodb.stream")
 objstream.Type = 1
 objstream.Mode =3
 objstream.Open
 objstream.Write body
 objstream.Position = 0
 objstream.Type = 2
 objstream.Charset = CsetBytesToBstr = objstream.ReadText
 objstream.Close
 set objstream = nothing
 End Function
 %>
 
 2
 
 <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
 <%
 public tempelatefile,tmpdata
 sub ofile()'打开文件,并把文件内容放到tmpdata
 on error resume next
 tmpdata=""
 set Astream=Server.CreateObject ("Adodb.Stream")
 Astream.type=2'文件类型文本
 Astream.Mode = 3'读写
 Astream.open
 Astream.CharSet = "GB2312"'字符集
 Astream.LoadFromFile(tempelatefile)'从文件装载
 Assp=Astream.size
 if err.number<>0 then
 xz=-18
 response.Write tempelatefile&"<br>"
 err.clear
 tmpdata=""
 else
 tmpdata=Astream.ReadText(Assp)
 end if
 
 end sub
 
 sub save_file()
 ofile()
 recfilen=server.MapPath(dts)
 Astream.Flush
 Astream.close
 Astream.type=2
 Astream.Mode = 3
 Astream.open
 Astream.CharSet = "GB2312"
 Astream.position=0
 Astream.Writetext tmpdata,1'写入数据到stream
 Astream.SaveToFile recfilen,2'保存到文件
 end sub
 
 function dts()'产生随机文件名
 if len(month(now()))>1 then
 mm=month(now())
 else
 mm="0"&month(now())
 end if
 if len(day(now()))>1 then
 d=day(now())
 else
 d="0"&day(now())
 end if
 if len(hour(now()))>1 then
 h=hour(now())
 else
 h="0"&hour(now())
 end if
 if len(minute(now()))>1 then
 m=minute(now())
 else
 m="0"&minute(now())
 end if
 if len(second(now()))>1 then
 s=second(now())
 else
 s="0"&second(now())
 end if
 Randomize
 upperbound=9999
 lowerbound=1000
 rds=Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
 dts="htm/"&year(now())&mm&d&h&m&s&rds&".htm"
 end function
 title=request.Form("title")
 content=request.Form("content")
 tmpdata=replace(tmpdata,"<title></title>",title)'以拥护提交内容替换
 tmpdata=replace(tmpdata,"<content></content>",content)
 tempelatefile=server.MapPath("tempelate/1.htm")'模版文件
 save_file()
 %>
 |