2008-10-09 3 views
0

Что я пытаюсь сделать, это закодировать gif-файл, чтобы включить его в XML-документ. Это то, что у меня есть сейчас, но, похоже, оно не работает.Могу ли я использовать VBScript для base64 кодировать gif?

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 

ответ

1

Посмотрите здесь: Base64 Encode & Decode Files with VBScript. Этот пример основан на бесплатном XBase64 component и просто предоставляет оболочку для обработки файлов.

Вы также можете пойти на pure VBScript implementation, но здесь вы должны заботиться о том, чтобы обрабатывать файлы самостоятельно. Не должно быть слишком сложно, но производительность кодирования будет не так хороша. Однако для нескольких небольших файлов изображений этого будет достаточно.

Google появится больше.

+0

Это выглядит хорошо, но я не могу использовать его из-за зависимости от внешних DLL. То, что я ищу, это сделать все это в vbscript. Чистая реализация VBScript основывается на файле ScptUtl.dll. – 2008-10-09 19:47:00

+0

Нет, это не так. :-) Я немного обновил вторую ссылку. – Tomalak 2008-10-09 19:53:45

1

В своем комментарии к Tomalak вы заявляете, что не хотите использовать внешние DLL, но в своем примере вы пытаетесь использовать ADODB. Поэтому я подозреваю, что вы имеете в виду, что вы не хотите устанавливать DLL, которые не присутствуют на платформе Windows.

Если это так, то 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 
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 
Смежные вопросы