asp读取一个图片,并转为base64编码的函数。可用于导出带图片的html单文件或带图片的word文件等用途
这个功能在百度知道问了十几天,百度知道表示它也不知道。后来网海捞针,竟在博客园找到一段相关代码。茅塞顿开,如同便秘通了那么顺畅舒服,函数化后,就有了这段代码。
<% 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") %>