当前位置 博文首页 > asp createTextFile生成文本文件支持utf8

    asp createTextFile生成文本文件支持utf8

    作者:admin 时间:2021-08-16 18:51

    但很多时候为了方便,我们会自定义生成文本文件的函数

    Function createTextFile(Byval content,Byval fileDir,Byval code)
    	dim fileobj,fileCode : fileDir=replace(fileDir, "\", "/")
    	if isNul(code) then fileCode=Charset else fileCode=code
    	call createfolder(fileDir,"filedir")
    	if fileCode="utf-8" then
    		on error resume next
    		With objStream
    			.Charset=fileCode:
    			.Type=2:
    			.Mode=3:
    			.Open:
    			.Position=0
    			.WriteText content:
    			.SaveToFile Server.MapPath(fileDir), 2
    			.Close
    		End With
    	else
    		on error resume next:err.clear
    		set fileobj=objFso.CreateTextFile(server.mappath(fileDir),True)
    		fileobj.Write(content)
    		set fileobj=nothing
    	end if
    	if Err Then err.clear :createTextFile=false : errid=err.number:errdes=err.description:Err.Clear : echoErr err_09,errid,errdes else createTextFile=true
    End Function
    Sub echoErr(byval str,byval id, byval des) 
    
     dim errstr,cssstr
    		cssstr="<meta http-equiv=""Content-Type"" content=""text/html; charset="&Charset&""" />"
     cssstr=cssstr&"<style>body{text-align:center}#msg{background-color:white;border:1px solid #0073B0;margin:0 auto;width:400px;text-align:left}.msgtitle{padding:3px 3px;color:white;font-weight:700;line-height:28px;height30px;font-size:12px;border-bottom:1px solid #0073B0; text-indent:3px; background-color:#0073B0}#msgbody{font-size:12px;padding:20px 8px 30px;line-height:25px}#msgbottom{text-align:center;height:20px;line-height:20px;font-size:12px;background-color:#0073B0;color:#FFFFFF}</style>"
     errstr=cssstr&"<script language=""javascript"">setTimeout(""goLastPage()"",5000);function goLastPage(){location.href='"& sitePath &"/';}</script><div id='msg'><div class='msgtitle'>提示:【"&str&"】</div><div id='msgbody'>错误号:"&id&"<br>错误描述:"&des&"<br /><a href=""javascript:history.go(-1);" rel="external nofollow" ">返回上一页</a>&nbsp;<a href=""" rel="external nofollow" & sitePath &"/"">返回首页</a></div><div id='msgbottom'>Powered by AspCms2.0</div></div>"
     cssstr=""
     die(errstr)
    End Sub
    Function createFolder(Byval dir,Byval dirType)
    dim subPathArray,lenSubPathArray, pathDeep, i
    on error resume next
    dir=replace(dir, "\", "/")
      if trim(sitePath) = "" then pathDeep = "/" else pathDeep = sitePath
      pathDeep = server.MapPath(pathDeep)
    dir=replace(server.mappath(dir), pathDeep, "")
    subPathArray=split(dir, "\")
    select case dirType
    case "filedir"
     lenSubPathArray=ubound(subPathArray) - 1
    case "folderdir"
    lenSubPathArray=ubound(subPathArray)
    end select
    for i=0 to lenSubPathArray
        if trim(subPathArray(i)) <> "" then
      pathDeep=pathDeep&"\"&subPathArray(i)
      if not objFso.FolderExists(pathDeep) then objFso.CreateFolder pathDeep
        end if
    next
    if Err Then createFolder=false : errid=err.number:errdes=err.description:Err.Clear : echoErr err_10,errid,errdes else createFolder=true
    End Function

    使用方法

    createTextFile content,htmlfilepath,""

    content就是内容,filepath就是文件路径

    createTextFile "内容","/article/11/22/3.htm",""

    ASP生成UTF-8编码的代码

    方法一:createtextfile生成文件方法

    function WriteToFile(FileName,FileContent)
    set fso=server.createobject("scripting.filesystemobject")
    set fp=fso.createtextfile(server.mappath(FileName),,True)
    fp.write(FileContent)
    end function

    方法二:ADODB.Stream生成文件方法 支持utf8,最上面的函数就包括下面的两种方法

    Set ccObjStream = Server.CreateObject("ADODB.Stream")
    With ccObjStream
    .Type = 2
    .Mode = 3
    .Open
    .Charset = "utf-8"
    .Position = ccObjStream.Size
    .WriteText 要生成的内容
    .SaveToFile 要生成文件路径和文件名,2
    .Close
    End With

    CreateTextFile 方法
    创建指定文件并返回 TextStream 对象,该对象可用于读或写创建的文件。

    object.CreateTextFile(filename[, overwrite[, unicode]])

    参数
    object

    必选项。应为 FileSystemObject 或 Folder 对象的名称。

    filename

    必选项。字符串表达式,指明要创建的文件。

    overwrite

    可选项。Boolean 值指明是否可以覆盖现有文件。如果可覆盖文件,该值为 True;如果不能覆盖文件,则该值为 False 。如果省略该值,则不能覆盖现有文件。

    unicode

    可选项。Boolean 值指明是否以 Unicode 或 ASCII 文件格式创建文件。如果以 Unicode 文件格式创建文件,则该值为 True;如果以 ASCII 文件格式创建文件,则该值为 False。如果省略此部分,则假定创建 ASCII 文件。 

    jsjbwy