Delphi DLL
Delphi DLL
Bandwidth Throttled Asynchronous HTTP Upload
See more Upload Examples
Demonstrates how to do an HTTP upload asynchronously in a background thread with limiting the rate to an approximate number of bytes/second. The only difference between this example and one without bandwidth throttling is that the BandwidthThrottleUp property is set.Chilkat Delphi DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Upload;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
upload: HCkUpload;
begin
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');
// Set the BandwidthThrottleUp property to throttle to approx 64K/second
CkUpload_putBandwidthThrottleUp(upload,65536);
// Begin the HTTP upload in a background thread:
success := CkUpload_BeginUpload(upload);
if (success <> True) then
begin
Memo1.Lines.Add(CkUpload__lastErrorText(upload));
end
else
begin
Memo1.Lines.Add('Upload started...');
end;
// Wait for the upload to finish.
// Print the progress as we wait...
while (CkUpload_getUploadInProgress(upload) = True) 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(CkUpload_getPercentUploaded(upload)) + '% ' + IntToStr(CkUpload_getNumBytesSent(upload)) + '/' + IntToStr(CkUpload_getTotalUploadSize(upload)));
// Sleep 2/10ths of a second.
CkUpload_SleepMs(upload,200);
end;
// Did the upload succeed?
if (CkUpload_getUploadSuccess(upload) = True) then
begin
Memo1.Lines.Add('Files uploaded!');
end
else
begin
Memo1.Lines.Add(CkUpload__lastErrorText(upload));
end;
CkUpload_Dispose(upload);
end;