LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

asp中转换base64字符串为图片、并保存base64字符串为图片

admin
2014年3月25日 0:55 本文热度 6225

之前用过一个activeX是调用摄像头拍照然后生成一段base64编码的字符串。或许各位会问咋不用flash哩,flash调用摄像头代码多的是,而且用activeX还要regserv什么的。

其实主要原因是因为这个拍照是不为客户所知道的(猥琐…)而用flash的话往往会跳出安全设置,所以就不能达到这个目的。

好吧,这些是本文讨论内容之外了,以下主要说的是使用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

<%
Function ImagesToBase64(FileName)
Dim xml
Dim root
Dim fs
Dim FilePath
Dim objStream
Dim 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
%>

<%
‘测试时同文件夹应该包含该图片文件。
response.Write ImagesToBase64(“12.jpg”)
%>

<%

Function ImagesToBase64(FileName)

Dim xml

Dim root

Dim fs

Dim FilePath

Dim objStream

Dim 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 %>


该文章在 2014/3/25 0:55:48 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved