Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Delphi DLL) Bandwidth Throttled Asynchronous HTTP UploadDemonstrates 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.
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 upload: HCkUpload; success: Boolean; begin 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; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.