本文主要说的是使用asp将base64编码的图片给保存到服务器上。其实像php有base64_encode,aspx也有相关的函数,就是这个asp需要另僻蹊径。
代码主要也是北京网站建设公司网上整理的,通过xml作为中间人。
picture=saferequest(“picture”,0) ‘将图片base64编码的字符串
path=”picture/1.jpg” ‘目标保存路径
xmlstr=”<data>”&picture&”</data>”
‘使用xml方法生成图片
Dim xml : Set xml=Server.CreateObject(“MSXML2.DOMDocument”)
Dim stm : Set stm=Server.CreateObject(“ADODB.Stream”)
xml.resolveExternals=False
xml.loadxml(xmlstr)
xml.documentElement.setAttribute “xmlns:dt”,”urn:schemas-microsoft-com:datatypes”
xml.documentElement.dataType = “bin.base64″
stm.Type=1 ‘adTypeBinary
stm.Open
stm.Write xml.documentElement.nodeTypedValue
stm.SaveToFile Server.MapPath(path)
stm.Close
Set xml=Nothing
Set stm=Nothing
以下代码摘自网上,是将图片转换为base64
<%
‘测试时同文件夹应该包含该图片文件。
response.Write ImagesToBase64(“12.jpg”)
%>
<%
Function ImagesToBase64(FileName)
Dim xml,root,fs,FilePath,objStream,objXMLDoc
Dim Base64 '定义变量完结 '创建对像
FilePath=Server.MapPath(FileName)
getFileExt = Mid(FilePath, InstrRev(FilePath,".") + 1)
Set objXMLDoc=Server.CreateObject("msxml2.FreeThreadedDOMDocument") '设定生成XML文档的根为 Base64Data
objXMLDoc.loadXML "<?xml version='1.0'?><Base64Data />"
Set fs = Server.createObject("Scripting.FileSystemObject") '服务器需要FSO组件
If fs.FileExists(FilePath) Then '判断File文件是否存在 '用 stream 来读取数据
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = 1
objStream.Open objStream.LoadFromFile FilePath
objXMLDoc.documentElement.dataType = "bin.base64"
objXMLDoc.documentElement.nodeTypedvalue = objStream.Read '数据流读取结束.得到了值 objXMLDoc
'创建XML文件
Set xml = Server.CreateObject("msxml2.FreeThreadedDOMDocument")
xml.load objXMLDoc
If xml.ReadyState>2 Then
Set root=xml.getElementsByTagName("Base64Data")
Base64="<img src=""data:image/"&getFileExt&";base64,"&vbcrlf&root.Item(0).Text&""">"
else
Base64=""
End If
Set xml=Nothing
Set objStream=Nothing
else
Base64=""
End If
Set fs=Nothing
Set objXMLDoc=Nothing
ImagesToBase64=Base64
End Function
%>
留言反馈