C
C
Asynchronous HTTPS Upload (TLS)
See more Upload Examples
Demonstrates how to do an HTTPS (TLS) 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 C Downloads
#include <C_CkUpload.h>
void ChilkatSample(void)
{
BOOL success;
HCkUpload upload;
success = FALSE;
upload = CkUpload_Create();
// Specify the page (ASP, ASP.NET, Perl, Python, Ruby, CGI, etc)
// that will process the HTTP Upload.
CkUpload_putHostname(upload,"www.mywebserver.com");
CkUpload_putPath(upload,"/receiveUpload.aspx");
// Add one or more files to be uploaded.
CkUpload_AddFileReference(upload,"file1","dude.gif");
CkUpload_AddFileReference(upload,"file2","pigs.xml");
CkUpload_AddFileReference(upload,"file3","sample.doc");
// To upload using SSL/TLS (https), set the Ssl property = TRUE
CkUpload_putSsl(upload,TRUE);
// Begin the HTTP upload in a background thread:
success = CkUpload_BeginUpload(upload);
if (success != TRUE) {
printf("%s\n",CkUpload_lastErrorText(upload));
}
else {
printf("Upload started..\n");
}
// Wait for the upload to finish.
// Print the progress as we wait...
while ((CkUpload_getUploadInProgress(upload) == 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:
printf("%u% %u/%u\n",CkUpload_getPercentUploaded(upload),CkUpload_getNumBytesSent(upload),CkUpload_getTotalUploadSize(upload));
// Sleep 2/10ths of a second.
CkUpload_SleepMs(upload,200);
}
// Did the upload succeed?
if (CkUpload_getUploadSuccess(upload) == TRUE) {
printf("Files uploaded!\n");
}
else {
printf("%s\n",CkUpload_lastErrorText(upload));
}
CkUpload_Dispose(upload);
}