<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="skins/JinnStyleV1/article.xslt"?><blog view="686732" processed="0.127" queries="13" focusMarkup="" xslt="skins/JinnStyleV1/article.xslt"><panels><panel id="1" sn="0" sys="true"><name>Blog Main</name><content><article id="184" disComm="false"><title>VBS 如何发送文件上传请求， multipart/form-data</title><category id="20"><name>学习随笔</name><icon>images/icons/3.gif</icon></category><content><![CDATA[&#22810;&#24180;&#21069; csdn &#22238;&#31572;&#38382;&#39064;&#20889;&#30340;&#20195;&#30721;&#20102;&#65292;&#26368;&#36817;&#21448;&#32763;&#21040;&#65292;&#35760;&#24405;&#19968;&#19979;<br /><br /><textarea name='code' class='vb' cols='50'>
Function GetFileData(path)
    With CreateObject(&quot;ADODB.Stream&quot;)
        .Type = 1
        .Mode = 3
        .Open
        .LoadFromFile path
        .Position = 0
        GetFileData = .Read(-1)
        .Close
    End With
End Function
 
Function GetBytes(str, cSet, bomLength)
    With CreateObject(&quot;ADODB.Stream&quot;)
        .Type = 2
        .Mode = 3
        .Charset = cSet
        .Open
        .Position = 0
        .WriteText str
        .Position = 0
        .Type = 1
        .Position = bomLength
        GetBytes = .Read(-1)
        .Close
    End With
End Function
 
Class Multipart
    Dim charset, bomLength, stream, boundary
 
    Private Sub Class_Initialize()
        Me.charset = &quot;UTF-8&quot;
        Me.bomLength = 3
        Set Me.stream = CreateObject(&quot;ADODB.Stream&quot;)
        Me.stream.Mode = 3
        Me.stream.Type = 1
        Me.stream.Open
        Me.boundary = &quot;----WebKitFormBoundaryomATwYZzgiwmJSgy&quot; ' &#38543;&#20415;&#20889;&#19968;&#20010;,&#22815;&#22797;&#26434;&#23601;&#34892;
    End Sub
    
    Sub WriteText(value)
        Me.stream.Write GetBytes(value, Me.charset, Me.bomLength)
    End Sub
    
    Public Function Size()
        Size = Me.stream.Size + Len(Me.boundary) + 4
    End Function
    
    Public Function GetData()
        Me.stream.Position = 0
        With CreateObject(&quot;ADODB.Stream&quot;)
            .Type = 1
            .Mode = 3
            .Open
            .Position = 0
            .Write Me.stream.Read(-1)
            .Write GetBytes(&quot;--&quot; &amp; Me.boundary &amp; &quot;--&quot;, Me.charset, Me.bomLength)
            .Position = 0
            GetData = .Read(-1)
            .Close
        End With
        Me.stream.Position = Me.stream.Size
    End Function
    
    Public Sub AddTextEntity(name, value)
        Me.WriteText &quot;--&quot; &amp; Me.boundary &amp; vbCrLf &amp; &quot;Content-Disposition: form-data; name=&quot;&quot;&quot; &amp; name &amp; &quot;&quot;&quot;&quot; &amp; vbCrLf &amp; vbCrLf &amp; value &amp; vbCrLf        
    End Sub
    
    Public Sub AddFileEntity(name, filePath, mime)
        Me.WriteText &quot;--&quot; &amp; Me.boundary &amp; vbCrLf
        Me.WriteText &quot;Content-Disposition: form-data; name=&quot;&quot;&quot; &amp; name &amp; &quot;&quot;&quot;; filename=&quot;&quot;&quot; &amp; filePath &amp; &quot;&quot;&quot;&quot; &amp; vbCrLf
        Me.WriteText &quot;Content-Type: &quot; &amp; mime &amp; vbCrLf &amp; vbCrLf
        Me.stream.Write GetFileData(filePath)
        Me.WriteText vbCrLf        
    End Sub
    
    Private Sub Class_Terminate()
        Me.stream.Close
        Set Me.Stream = Nothing
    End Sub
End Class
 
 
 
 
 
Dim filePath, POST_URL, multidata, xhr
 
POST_URL =&quot;http://127.0.0.1:8080/kdxf&quot;
 
 
Set multidata = New Multipart
multidata.AddFileEntity &quot;picFile&quot;, &quot;E:\40x40.jpg&quot;, &quot;image/jpeg&quot;
multidata.AddTextEntity &quot;ksp_name&quot;, &quot;1&quot;
multidata.AddTextEntity &quot;ksp_courtName&quot;, &quot;1&quot;
multidata.AddTextEntity &quot;ksp_courtCode&quot;, &quot;1&quot;
multidata.AddTextEntity &quot;ksp_serviceid&quot;, &quot;63&quot;
 
 
Set xhr = CreateObject(&quot;WinHttp.WinHttpRequest.5.1&quot;)
xhr.Open &quot;POST&quot;, POST_URL, False
xhr.SetRequestHeader &quot;X-KSP-Token&quot;, &quot;123456&quot;
xhr.SetRequestHeader &quot;Content-Length&quot;, multidata.Size()
xhr.SetRequestHeader &quot;Content-Type&quot;, &quot;multipart/form-data; boundary=&quot; &amp; multidata.boundary
xhr.Send multidata.GetData()
 
WScript.Echo xhr.ResponseText
</textarea><br /><br />csdn &#38142;&#25509;&#65306;<a href='https://bbs.csdn.net/topics/392385254' target='_blank'>https://bbs.csdn.net/topics/392385254</a>]]></content><publish>2022-09-06 22:25:28</publish><update>2022-09-06 22:29:48</update><comment>0</comment><view>684</view></article><comments/><previous id="183"><title>javascript 相对路径转绝对路径</title></previous><next id="185"><title>关于[vscode-remote-ssh]Connection error: Unauthorized client refused: auth mismatch</title></next></content></panel></panels><modules><module id="4" sn="3" sys="true"><name>Category</name><title>日志分类</title></module><module id="6" sn="4" sys="true"><name>Archive</name><title>日志归档</title></module><module id="5" sn="5" sys="true"><name>User Panel</name><title>控制面板</title></module><module id="10" sn="6" sys="true"><name>Recent Article</name><title>最新日志</title></module><module id="8" sn="7" sys="true"><name>Search</name><title>查询搜索</title></module><module id="7" sn="8" sys="true"><name>Recent Comments</name><title>最新评论</title></module><module id="2" sn="9" sys="true"><name>Statistics</name><title>统计信息</title></module></modules><user><usn></usn><status>3</status><login>false</login></user></blog>
