Sample code for 30+ languages & platforms
Dart

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 Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  final upload = CkUpload();

  // Specify the page (ASP, ASP.NET, Perl, Python, Ruby, CGI, etc)
  // that will process the HTTP Upload.
  upload.hostname = 'www.mywebserver.com';
  upload.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:
  try {
    upload.beginUpload();
    print('Upload started...');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
  }

  // Wait for the upload to finish.
  // Print the progress as we wait...
  while (upload.uploadInProgress) {
    // 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.percentUploaded}% ${upload.numBytesSent}/${upload.totalUploadSize}');

    // Sleep 2/10ths of a second.
    upload.sleepMs(200);
  }

  // Did the upload succeed?
  if (upload.uploadSuccess) {
    print('Files uploaded!');
  } else {
    print(upload.lastErrorText);
  }
}