分享:解决BASE64编码问题的终极方法
tonl8 2009-08-05 07:02:23 刚下班发了一个贴子,http://topic.csdn.net/u/20090805/18/5110e486-2139-4562-9d3c-a0ae0c049ab6.html#r_achor
呵呵,没想到这么快!
我也正好找到此组件,解决了此问题
方法如下:
Dim getBASE64STR '编码后的内容
getBASE64STR=XMLbase64(StreamReadFile(server.MapPath("testFAX.doc"),1))
Function StreamReadFile(FileName,Ntype)
dim objStream,m,i,bchar,Newstr
Set objStream =Server.CreateObject("ADODB.Stream")
objStream.Open
if Ntype=1 then
objStream.Type = 1 '2进制方式
objStream.LoadFromFile FileName
StreamReadFile=objStream.Read
else
objStream.Type = 2 '字符方式
objStream.CharSet = "gb2312"
objStream.LoadFromFile FileName
StreamReadFile=objStream.ReadText
end if
objStream.Close
Set objStream = Nothing
End Function
function XMLbase64(bytesouce)
'bytesouce 必须是用ADODB.Stream 读取的二进制数据流,方法请参看 StreamReadFile(FileName,Ntype) 函数
dim NewXML
set NewXML=server.CreateObject("Msxml2.DOMDocument")
NewXML.loadXML "<root />"
NewXML.documentElement.dataType = "bin.base64"
NewXML.documentElement.nodeTypedValue = bytesouce
XMLbase64 = NewXML.documentElement.Text
end function
解码方法,请参照VBCODE:
Function Base64Decode(Source As String) As Byte()
Dim MainXml As New DOMDocument
MainXml.loadXML "<root />"
MainXml.documentElement.dataType = "bin.base64"
MainXml.documentElement.Text = Source
Base64Decode = MainXml.documentElement.nodeTypedValue
End Function