SQL Server
SQL Server
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 SQL Server Downloads
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
DECLARE @iTmp0 int
DECLARE @iTmp1 int
DECLARE @iTmp2 int
DECLARE @sTmp0 nvarchar(4000)
DECLARE @success int
SELECT @success = 0
DECLARE @upload int
EXEC @hr = sp_OACreate 'Chilkat.Upload', @upload OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
-- Specify the page (ASP, ASP.NET, Perl, Python, Ruby, CGI, etc)
-- that will process the HTTP Upload.
EXEC sp_OASetProperty @upload, 'Hostname', 'www.mywebserver.com'
EXEC sp_OASetProperty @upload, 'Path', '/receiveUpload.aspx'
-- Add one or more files to be uploaded.
EXEC sp_OAMethod @upload, 'AddFileReference', NULL, 'file1', 'dude.gif'
EXEC sp_OAMethod @upload, 'AddFileReference', NULL, 'file2', 'pigs.xml'
EXEC sp_OAMethod @upload, 'AddFileReference', NULL, 'file3', 'sample.doc'
-- To upload using SSL/TLS (https), set the Ssl property = 1
EXEC sp_OASetProperty @upload, 'Ssl', 1
-- Begin the HTTP upload in a background thread:
EXEC sp_OAMethod @upload, 'BeginUpload', @success OUT
IF @success <> 1
BEGIN
EXEC sp_OAGetProperty @upload, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
END
ELSE
BEGIN
PRINT 'Upload started..'
END
-- Wait for the upload to finish.
-- Print the progress as we wait...
EXEC sp_OAGetProperty @upload, 'UploadInProgress', @iTmp0 OUT
WHILE (@iTmp0 = 1)
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:
EXEC sp_OAGetProperty @upload, 'PercentUploaded', @iTmp0 OUT
EXEC sp_OAGetProperty @upload, 'NumBytesSent', @iTmp1 OUT
EXEC sp_OAGetProperty @upload, 'TotalUploadSize', @iTmp2 OUT
PRINT @iTmp0 + '% ' + @iTmp1 + '/' + @iTmp2
-- Sleep 2/10ths of a second.
EXEC sp_OAMethod @upload, 'SleepMs', NULL, 200
END
-- Did the upload succeed?
EXEC sp_OAGetProperty @upload, 'UploadSuccess', @iTmp0 OUT
IF @iTmp0 = 1
BEGIN
PRINT 'Files uploaded!'
END
ELSE
BEGIN
EXEC sp_OAGetProperty @upload, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
END
EXEC @hr = sp_OADestroy @upload
END
GO