方法一: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 = Cset BytesToBstr = 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() %> |