File upload 使用MSXML在VB6中上载文件时内存不足(7)

File upload 使用MSXML在VB6中上载文件时内存不足(7),file-upload,vb6,adodb,msxml,msxml6,File Upload,Vb6,Adodb,Msxml,Msxml6,我有一个使用MSXML2.ServerXMLHTTP60使用Visual Basic 6上载多部分/表单数据的功能,100MB文件大小没有问题,但当我上载200MB时,内存不足,显示“运行时错误'7'” 这是我的代码: Public Function PostFile(sUrl As String, sJSON As String, sFileName As String) As String Const STR_BOUNDARY As String = "864d391d-4097-

我有一个使用MSXML2.ServerXMLHTTP60使用Visual Basic 6上载多部分/表单数据的功能,100MB文件大小没有问题,但当我上载200MB时,内存不足,显示“运行时错误'7'”

这是我的代码:

Public Function PostFile(sUrl As String, sJSON As String, sFileName As String) As String
    Const STR_BOUNDARY  As String = "864d391d-4097-44e0-92e1-71aff17094c1"
    Dim sPostData       As String
    Dim bytData

    With CreateObject("ADODB.Stream")
        .Type = 1
        .Mode = 3
        .Open
        .LoadFromFile sFileName
        bytData = .Read
    End With

    With CreateObject("ADODB.Stream")
        .Mode = 3
        .Charset = "Windows-1252"
        .Open
        .Type = 2
        .WriteText "--" & STR_BOUNDARY & vbCrLf
        .WriteText "Content-Disposition: form-data; name=""json""" & vbCrLf
        .WriteText "Content-Type: application/json" & vbCrLf & vbCrLf
        .WriteText sJSON & vbCrLf
        .WriteText "--" & STR_BOUNDARY & vbCrLf
        .WriteText "Content-Disposition: form-data; name=""uploadfile""; filename=""" & Mid$(sFileName, InStrRev(sFileName, "\") + 1) & """" & vbCrLf
        .WriteText "Content-Type: application/octet-stream" & vbCrLf & vbCrLf
        .Position = 0
        .Type = 1
        .Position = .Size
        .Write bytData
        .Position = 0
        .Type = 2
        .Position = .Size
        .WriteText vbCrLf & "--" & STR_BOUNDARY & "--"
        .Position = 0
        .Type = 1
        sPostData = StrConv(.Read, vbUnicode)
    End With

    With New MSXML2.ServerXMLHTTP60
        .Open "POST", sUrl, True
        .setRequestHeader "Content-Type", "multipart/form-data; boundary=" & STR_BOUNDARY
        .send ToByteArray(sPostData)
        .waitForResponse 300 'second
        If .Status = 200 Then PostFile = .responseText Else .abort
    End With
End Function

Private Function ToByteArray(sText As String) As Byte()
    ToByteArray = StrConv(sText, vbFromUnicode)
End Function
在更新上述脚本之前,我使用“打开文件方法”读取二进制文件,如下所示:

Public Function PostFile(sUrl As String, sJSON As String, sFileName As String) As String
    Const STR_BOUNDARY  As String = "864d391d-4097-44e0-92e1-71aff17094c1"
    Dim nFile           As Integer
    Dim baBuffer()      As Byte
    Dim sPostData       As String

    nFile = FreeFile
    Open sFileName For Binary Access Read As nFile
    If LOF(nFile) > 0 Then
        ReDim baBuffer(0 To LOF(nFile) - 1) As Byte
        Get nFile, , baBuffer
        sPostData = StrConv(baBuffer, vbUnicode)
    End If
    Close nFile

    '--- prepare body
    sPostData = "--" & STR_BOUNDARY & vbCrLf & _
        "Content-Disposition: form-data; name=""json""" & vbCrLf & _
        "Content-Type: application/json" & vbCrLf & vbCrLf & _
        sJSON & vbCrLf & _
        "--" & STR_BOUNDARY & vbCrLf & _
        "Content-Disposition: form-data; name=""uploadfile""; filename=""" & Mid$(sFileName, InStrRev(sFileName, "\") + 1) & """" & vbCrLf & _
        "Content-Type: application/octet-stream" & vbCrLf & vbCrLf & _
        sPostData & vbCrLf & _
        "--" & STR_BOUNDARY & "--"
    '--- post

    With New MSXML2.ServerXMLHTTP60
        .Open "POST", sUrl, True
        .setRequestHeader "Content-Type", "multipart/form-data; boundary=" & STR_BOUNDARY
        .send ToByteArray(sPostData)
        .waitForResponse 300 'second
        If .Status = 200 Then PostFile = .responseText Else .abort
    End With
End Function

Private Function ToByteArray(sText As String) As Byte()
    ToByteArray = StrConv(sText, vbFromUnicode)
End Function
但是,显示错误“运行时错误'14'”的字符串空间不足

如何处理这个错误