VB6 base64 Binary - PullRequest
       9

VB6 base64 Binary

0 голосов
/ 11 августа 2010

У меня проблема с этим веб-сервисом:

http://credenciados.pronto.com.br/carga.asmx?op=IncluirMultimidia2

для arrayArquivo , я использую эту функцию для генерации данных:

Private Function getBase64fromFile(Filename) As String

   Dim base64 As New cls64base

   Dim FileInputData() As Byte

   Open Filename For Binary As #1
   FileInputData = String(LOF(1), 0)
   Get #1, 1, FileInputData
   Close #1

   getBase64fromFile = base64.Base64Encode(FileInputData)

End Function

Когда я вызываю службу, я получаю эту ошибку:

Ошибка преобразования типа для элемента arrayArquivo

Obs:

Я использую:

  • Microsoft Soap ToolKit 3.0
  • Visual Basic 6

1 Ответ

3 голосов
/ 16 августа 2010

Я не уверен, что это за проблема, но я использую следующую пару процедур, чтобы получить двоичные данные из файла, а затем кодировать их с помощью base64.Код требует библиотеки MSXML - я использую версию 3, которая должна быть доступна для всех версий Win2K +.

Для получения двоичных данных из файла:

Public Function GetFileData(ByVal Filename As String) As Byte()

    Dim f As Integer

    f = FreeFile

    Open Filename For Binary Access Read As #f
    ReDim GetFileData(0 To LOF(f) - 1)
    Get #f, , GetFileData
    Close #f

End Function

Для преобразования байтового массива встрока base64:

Public Function GetBase64String(ByRef data() As Byte) As String

    Dim doc As DOMDocument
    Dim root As IXMLDOMElement

    Set doc = New DOMDocument
    Set root = doc.createElement("encode")
    root.dataType = "bin.base64"
    root.nodeTypedValue = data

    GetBase64String = root.Text

Exit Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...