Sample code for 30+ languages & platforms
Ruby

Asynchronous HTTP Upload

See more Upload Examples

Demonstrates how to do an HTTP upload asynchronously in a background thread.

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

Chilkat Ruby Downloads

Ruby
require 'chilkat'

success = false

upload = Chilkat::CkUpload.new()

# Specify the page (ASP, ASP.NET, Perl, Python, Ruby, CGI, etc)
# that will process the HTTP Upload.
upload.put_Hostname("www.mywebserver.com")
upload.put_Path("/receiveUpload.aspx")

# Add one or more files to be uploaded.
upload.AddFileReference("file1","dude.gif")
upload.AddFileReference("file2","pigs.xml")
upload.AddFileReference("file3","sample.doc")

# Begin the HTTP upload in a background thread:
success = upload.BeginUpload()
if (success != true)
    print upload.lastErrorText() + "\n";
else
    print "Upload started..." + "\n";
end

# Wait for the upload to finish.
# Print the progress as we wait...
while (upload.get_UploadInProgress() == true)
    # We can abort the upload at any point by calling:
    # upload.AbortUpload();

    # Display the percentage complete and the number of bytes uploaded so far..
    # The total upload size will become set after the upload begins:
    print upload.get_PercentUploaded().to_s() + "% " + upload.get_NumBytesSent().to_s() + "/" + upload.get_TotalUploadSize().to_s() + "\n";

    # Sleep 2/10ths of a second.
    upload.SleepMs(200)

end

# Did the upload succeed?
if (upload.get_UploadSuccess() == true)
    print "Files uploaded!" + "\n";
else
    print upload.lastErrorText() + "\n";
end