Web services VB6 base64二进制

Web services VB6 base64二进制,web-services,soap,vb6,base64,Web Services,Soap,Vb6,Base64,我在此Web服务上遇到问题: 在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,

我在此Web服务上遇到问题:

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

我不确定这个问题是什么,但我使用以下两个例程从文件中获取二进制数据,然后对其进行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

我不确定这个问题是什么,但我使用以下两个例程从文件中获取二进制数据,然后对其进行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

当然,为了减少依赖性,人们也可以考虑编写一个自己的编码/解码工具,因为Base64转换并不是一项非常艰巨的任务:当然,为了减少依赖性,人们也可以考虑制作自己的编码/解码工具,因为Base64转换不是一项非常艰巨的任务: