Sample code for 30+ languages & platforms
C

HTTPS Upload File to Web Server

See more HTTP Examples

Uploads a file to a web server using HTTPS.

Chilkat C Downloads

C
#include <C_CkHttpRequest.h>
#include <C_CkHttp.h>
#include <C_CkHttpResponse.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkHttpRequest req;
    HCkHttp http;
    BOOL useSslTls;
    HCkHttpResponse resp;

    success = FALSE;

    // This example requires the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    // The ContentType, HttpVerb, and Path properties should
    // always be explicitly set.
    req = CkHttpRequest_Create();
    CkHttpRequest_putHttpVerb(req,"POST");
    CkHttpRequest_putPath(req,"/receiveMyUpload.aspx");
    CkHttpRequest_putContentType(req,"multipart/form-data");

    CkHttpRequest_AddStringForUpload(req,"fileA","fileA.txt","This is the contents of file A","utf-8");
    success = CkHttpRequest_AddFileForUpload(req,"starfish.jpg","qa_data/jpg/starfish.jpg");
    if (success == FALSE) {
        printf("%s\n",CkHttpRequest_lastErrorText(req));
        CkHttpRequest_Dispose(req);
        return;
    }

    http = CkHttp_Create();

    // ----------------------------------------------------------------------------
    // IMPORTANT:
    // HTTP uploads require a counterpart implementation on the server, written in any desired language
    // such as C#, Classic ASP, PHP, etc., which consumes the upload being sent.
    // See: ASP.NET Receive Upload
    // ----------------------------------------------------------------------------

    // Do the upload.
    useSslTls = TRUE;
    resp = CkHttpResponse_Create();
    success = CkHttp_HttpSReq(http,"www.example.com",443,useSslTls,req,resp);
    if (success == FALSE) {
        printf("%s\n",CkHttp_lastErrorText(http));
        CkHttpRequest_Dispose(req);
        CkHttp_Dispose(http);
        CkHttpResponse_Dispose(resp);
        return;
    }

    printf("response status code = %d\n",CkHttpResponse_getStatusCode(resp));
    printf("response body:\n");
    printf("%s\n",CkHttpResponse_bodyStr(resp));


    CkHttpRequest_Dispose(req);
    CkHttp_Dispose(http);
    CkHttpResponse_Dispose(resp);

    }