Sample code for 30+ languages & platforms
DataFlex

Add Parameters to Multipart Form-Data POSTs

Parameters (name=value) can be added to multipart/form-data POSTs (such as for file uploads) by using the AddParam method. This example sends the following HTTP POST
POST /something HTTP/1.1
Content-Type: multipart/form-data; boundary=------------010201080703010401070605
Host: domain
Content-Length: 560

--------------010201080703010401070605
Content-Disposition: form-data; name="name"

Joe
--------------010201080703010401070605
Content-Disposition: form-data; name="age"

25
--------------010201080703010401070605
Content-Disposition: form-data; name="fileA"; filename="fileA.txt"
Content-Type: text/plain

This is the contents of file A
--------------010201080703010401070605
Content-Disposition: form-data; name="fileB"; filename="fileB.txt"
Content-Type: text/plain

This is the contents of file B
--------------010201080703010401070605--

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoReq
    Boolean iSuccess
    String sTemp1

    Get Create (RefClass(cComChilkatHttpRequest)) To hoReq
    If (Not(IsComObjectCreated(hoReq))) Begin
        Send CreateComObject of hoReq
    End

    Set ComHttpVerb Of hoReq To "POST"
    Set ComPath Of hoReq To "/something"
    Set ComContentType Of hoReq To "multipart/form-data"

    Send ComAddParam To hoReq "name" "Joe"
    Send ComAddParam To hoReq "age" "25"

    Get ComAddStringForUpload Of hoReq "fileA" "fileA.txt" "This is the contents of file A" "utf-8" To iSuccess
    Get ComAddStringForUpload Of hoReq "fileB" "fileB.txt" "This is the contents of file B" "utf-8" To iSuccess

    Get ComGenerateRequestText Of hoReq To sTemp1
    Showln sTemp1


End_Procedure