MSI Factory 2.3

HTTP.DownloadSecure

HTTP.DownloadSecure

This is the first topic This is the last topic  

HTTP.DownloadSecure

This is the first topic This is the last topic  

OverviewExamples

HTTP.DownloadSecure (

string   URL,

string   Filename,

number   Mode = MODE_BINARY,

number   Timeout = 20,

number   Port = 443,

table   AuthData = nil,

table   ProxyData = nil,

function CallbackFunction = nil )

Example 1

HTTP.DownloadSecure("https://www.indigorose.com/downloads/sample.zip", _TempFolder.."\\sample.zip", MODE_BINARY, 20, 443, nil, nil, nil);

Downloads the file "sample.zip" from "http://www.indigorose.com/downloads" into the user's Temporary folder.

Note: _TempFolder is a built-in variable that contains the path to the user's system "Temp" folder.

Example 2

-- Check to see if the user is connected to the internet

connected = HTTP.TestConnection("http://www.indigorose.com", 20, 80, nil, nil);

 

-- If they are connected.

if connected then

   -- Download a file to their temporary directory.

   StatusDlg.Show(MB_ICONNONE, false);

 

   HTTP.DownloadSecure("https://www.indigorose.com/setup.exe", _TempFolder.."\\setup.exe", MODE_BINARY, 20, 443, nil, nil, nil);

 

   -- Get any error codes that may have been returned by the download action.

   error = Application.GetLastError();

   StatusDlg.Hide();

 

 

   -- If there was an error during the download, display the error message.

   if error ~= 0 then

       result = Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);

 

   -- If there was no error during the download.

   else

       --Get the CRC value of the downloaded file.

       crc_value = File.GetCRC(_TempFolder.."\\setup.exe");

       -- Check to see if the CRC value matches it's expected value.

       if crc_value == 824907888 then

 

           -- Run the executable that was downloaded.

           File.Run(_TempFolder.."\\setup.exe", "", "", SW_SHOWNORMAL, true);

 

 

       -- The CRC value does not match. Display an error message to the user.

       else

           result = Dialog.Message("Error", "The downloaded file is incomplete. Please try downloading again.", MB_OK, MB_ICONSTOP, MB_DEFBUTTON1);

       end

   end

 

-- Display a notice informing them that they are not connected.

else

   Dialog.Message("Internet Error", "You are not connected to the internet. Please connect to download.");

end

This example first checks to see if the user has an internet connection. If they do, a file is downloaded to their temporary directory. That file is then checked to make sure it is complete and not corrupt before launching it. A series of checks are performed in this script to handle any errors that occur and displays notification messages to the user if any actions fail.

Note: _TempFolder is a built-in variable that contains the path to the user's system "Temp" folder.

Example 3

-- Callback function for HTTP.DownloadSecure

function DownloadCallback (nDownloaded, nTotal, TransferRate, SecondLeft, SecondsLeftFormat, Message)

   -- Convert total and downloaded bytes into formatted strings

   sDownloaded = String.GetFormattedSize(nDownloaded, FMTSIZE_AUTOMATIC, true);

   sTotal = String.GetFormattedSize(nTotal, FMTSIZE_AUTOMATIC, true);

 

   -- Output time left, formatted.

   StatusDlg.SetMessage("Currently downloading file . . . Time Left: " .. SecondsLeftFormat);

 

   -- Output formatted sizes to user through statusdlg status text

   StatusDlg.SetStatusText("Downloaded: " .. sDownloaded .. " / " .. sTotal);

 

   -- Set meter position (fraction downloaded * max meter range)

   StatusDlg.SetMeterPos((nDownloaded / nTotal) * 65534);

 

   -- Continue with the download.

   return true;

end

 

-- Set status dlg title and message

StatusDlg.SetTitle("Downloading . . . ");

StatusDlg.SetMessage("Currently downloading file . . . ");

 

-- Set meter range (max range = 65534)

StatusDlg.SetMeterRange(0, 65534);

 

-- Show the status dlg

StatusDlg.Show(0, false);

 

-- Download a file from the internet to the user's computer

-- Uses DownloadCallback() as the callback function

HTTP.DownloadSecure("https://www.yourdomain.com/downloads/update.exe", _TempFolder .. "\\update.exe", MODE_BINARY, 20, 443, nil, nil, DownloadCallback);

 

-- Hide the status dlg

StatusDlg.Hide();

Downloads a file from the internet onto the user's computer.   The callback function "DownloadCallback" controls the status dialog.

See also: Related Actions


Learn More: Indigo Rose Software - MSI Factory - Buy Now - Contact Us