Delphi ActiveX
Delphi ActiveX
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 Delphi ActiveX Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
upload: TChilkatUpload;
begin
success := 0;
upload := TChilkatUpload.Create(Self);
// 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');
// To upload using SSL/TLS (https), set the Ssl property = 1
upload.Ssl := 1;
// Begin the HTTP upload in a background thread:
success := upload.BeginUpload();
if (success <> 1) then
begin
Memo1.Lines.Add(upload.LastErrorText);
end
else
begin
Memo1.Lines.Add('Upload started..');
end;
// Wait for the upload to finish.
// Print the progress as we wait...
while (upload.UploadInProgress = 1) do
begin
// 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:
Memo1.Lines.Add(IntToStr(upload.PercentUploaded) + '% ' + IntToStr(upload.NumBytesSent) + '/' + IntToStr(upload.TotalUploadSize));
// Sleep 2/10ths of a second.
upload.SleepMs(200);
end;
// Did the upload succeed?
if (upload.UploadSuccess = 1) then
begin
Memo1.Lines.Add('Files uploaded!');
end
else
begin
Memo1.Lines.Add(upload.LastErrorText);
end;
end;