0

我想要做的是编码一个 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
4

3 回答 3

3

我最近为JScriptVBScript的实现写了一篇关于这个主题的文章。这是我为 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
于 2013-10-02T06:48:50.380 回答
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
于 2008-10-09T21:49:58.010 回答
1

看看这里:Base64 Encode & Decode Files with VBScript。此示例依赖于免费的XBase64 组件,并且仅提供了一个用于文件处理的包装器。

您也可以使用纯 VBScript 实现,但在这里您必须自己处理文件。应该不会太难,但编码性能不会那么好。不过,对于一些小图像文件就足够了。

谷歌会出现更多。

于 2008-10-09T19:26:39.937 回答