Sample code for 30+ languages & platforms
SQL Server

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 SQL Server Downloads

SQL Server
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    -- Important: Do not use nvarchar(max).  See the warning about using nvarchar(max).
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @req int
    EXEC @hr = sp_OACreate 'Chilkat.HttpRequest', @req OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    EXEC sp_OASetProperty @req, 'HttpVerb', 'POST'
    EXEC sp_OASetProperty @req, 'Path', '/something'
    EXEC sp_OASetProperty @req, 'ContentType', 'multipart/form-data'

    EXEC sp_OAMethod @req, 'AddParam', NULL, 'name', 'Joe'
    EXEC sp_OAMethod @req, 'AddParam', NULL, 'age', '25'

    DECLARE @success int
    EXEC sp_OAMethod @req, 'AddStringForUpload', @success OUT, 'fileA', 'fileA.txt', 'This is the contents of file A', 'utf-8'
    EXEC sp_OAMethod @req, 'AddStringForUpload', @success OUT, 'fileB', 'fileB.txt', 'This is the contents of file B', 'utf-8'

    EXEC sp_OAMethod @req, 'GenerateRequestText', @sTmp0 OUT
    PRINT @sTmp0

    EXEC @hr = sp_OADestroy @req


END
GO