我要做的是对gif文件进行编码,以包含在XML文档中。 这就是我现在所拥有的,但它似乎不起作用。
Function gifToBase64(strGifFilename)
On Error Resume Next
Dim strBase64
Set inputStream = WScript.CreateObject("ADODB.Stream")
inputStream.LoadFromFile strGifFilename
strBase64 = inputStream.Text
Set inputStream = Nothing
gifToBase64 = strBase64
End Function
答案 0 :(得分:3)
我最近在JScript和VBScript中撰写了一篇关于此主题的帖子。这是我对VBScript的解决方案:
Public Function convertImageToBase64(filePath)
Dim inputStream
Set inputStream = CreateObject("ADODB.Stream")
inputStream.Open
inputStream.Type = 1 ' adTypeBinary
inputStream.LoadFromFile filePath
Dim bytes: bytes = inputStream.Read
Dim dom: Set dom = CreateObject("Microsoft.XMLDOM")
Dim elem: Set elem = dom.createElement("tmp")
elem.dataType = "bin.base64"
elem.nodeTypedValue = bytes
convertImageToBase64 = "data:image/png;base64," & Replace(elem.text, vbLf, "")
End Function
答案 1 :(得分:1)
看看这里:Base64 Encode & Decode Files with VBScript。此示例依赖于free XBase64 component,仅提供文件处理的包装器。
你也可以去pure VBScript implementation,但在这里你必须自己关心文件处理。应该不会太难,但编码性能会不会那么好。但是对于一些小图像文件来说就足够了。
谷歌会更多。
答案 2 :(得分:1)
在您对Tomalak的评论中,您声明您不想使用外部dll,但在您尝试的示例中,您尝试使用ADODB。因此我怀疑你的意思是你不想安装在vanilia windows平台上本身不存在的dll。
如果是这样,那么MSXML可能就是您的答案: -
Function Base64Encode(rabyt)
Dim dom: Set dom = CreateObject("MSXML2.DOMDocument.3.0")
Dim elem: Set elem = dom.appendChild(dom.createElement("root"))
elem.dataType = "bin.base64"
elem.nodeTypedValue = rabyt
Base64Encode = elem.Text
End Function