Sample code for 30+ languages & platforms
Zig

Upload Files to a Web Server - Simplest TLS Example

See more Upload Examples

This is the simplest example for uploading some files to a web server using SSL/TLS. the BlockingUpload call is synchronous and returns when the upload is finished (or failed).

A server-side C# example showing how to receive an upload is located at C# ASP.NET Code to Receive Upload

Chilkat Zig Downloads

Zig
const std = @import("std");
const chilkat = @import("chilkat");

pub fn main(init: std.process.Init) !void {
    const alloc = init.arena.allocator();

    var success: bool = false;

    const upload = try chilkat.Upload.init();
    defer upload.deinit();

    // Specify the page (ASP, ASP.NET, Perl, Python, Ruby, CGI, etc)
    // that will receive and process the HTTPS Upload.
    upload.setHostname("www.mywebserver.com");
    upload.setPath("/receiveUpload.aspx");

    // Make sure to indicate that TLS is to be used, and the port should be
    // 443 rather than 80.
    upload.setSsl(true);
    upload.setPort(443);

    // Add one or more files to be uploaded.
    upload.addFileReference("file1", "dude.gif");
    upload.addFileReference("file2", "swordfish.xml");
    upload.addFileReference("file3", "sample.doc");

    // Do the upload.  The method returns when the upload
    // is completed.
    // This component also includes asynchronous upload capability,
    // which is demonstrated in another example.
    success = if (upload.blockingUpload()) true else |_| false;
    if (!success) {
        std.debug.print("{s}\n", .{try upload.getLastErrorText(alloc)});
    } else {
        std.debug.print("Files uploaded!\n", .{});
    }
}