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

私は最近、 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
于 2013-10-02T06:48:50.380 に答える
1

こちらをご覧ください: Base64 Encode & Decode Files with VBScript . この例は無料のXBase64 コンポーネントに依存しており、ファイル処理のラッパーを提供するだけです。

純粋な VBScript 実装を使用することもできますが、ここではファイルの処理を自分で行う必要があります。それほど難しくはないはずですが、エンコードのパフォーマンスはそれほど良くありません。ただし、いくつかの小さな画像ファイルの場合は十分です。

Google はさらに表示されます。

于 2008-10-09T19:26:39.937 に答える
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 に答える