As Active X controls, XFile and Archive are each instantiated in HTML via the <OBJECT> tag.
- To instantiate Archive, set the "clsid" attribute of the <OBJECT> tag to "clsid:D3400FEE-041F-11D3-B1C5-00A0C9B4587A"
- To instantiate the file transfer engine of XFile, the XFRequest object, set the "clsid" attribute of the <OBJECT> tag to "clsid:C3A57B60-C117-11D2-BD9B-00105A0A7E89"
- To automate the actions of XFile and Archive, simply refer to each object by the name provided in the "ID" attribute of each <OBJECT> tag.
In the script below, XFile makes an HTTP "GET" request, receives the file in the HTTP Response and saves the file to the client. As part of this, XFile triggers its own OnTransferComplete event which serves as an appropriate place from which to launch the Archive related functions. Here you can open the downloaded archive and extract the files to the client's file system.
<HTML>
<BODY>
<CENTER><H2>IE Based SA-XFile "Get" Sample</H2>
<FORM action="saxfile_get.asp" method="post" id="form1" name="form1">
This page makes a "GET" Request with the XFRequest Object.<br>
It will download a zip file, and then use Archive to extract <br>
the contents to a folder on the client.
<p>
<INPUT Type="button" Name="GetButton" value="Get!">
</p>
</form>
</CENTER>
<!-- Instantiate XFile's XFRequest Object -->
<OBJECT classid="clsid:C3A57B60-C117-11D2-BD9B-00105A0A7E89"
codebase="/SAXFileSamples/saxfile.cab" id="objXFRequest" VIEWASTEXT>
</OBJECT>
<!-- Instantiate Archive -->
<OBJECT classid="clsid:D3400FEE-041F-11D3-B1C5-00A0C9B4587A"
Codebase="/SAXFileSamples/saxfile.cab" ID="objArchive" VIEWASTEXT>
</OBJECT>
<SCRIPT>
Dim pathToFileOnServer
'-- Path of the zip file to be downloaded from the webserver
pathToFileOnServer = "http://localhost/GetZipFileFromHere/test.zip"
Dim pathToFileOnClient
'-- Path to where the zip file should be saved on the client
pathToFileOnClient = "C:\Downloads\myDownloadedZipFile.zip"
Dim pathExtract
'-- Path on the client to which the zipped files should be extracted
pathExtract = "C:\Downloads\ExtractedFiles\"
Sub GetButton_onClick()
With objXFRequest
' -- set the Request Method to GET for the download
.RequestMethod = "GET"
.AddFile pathToFileOnClient, pathToFileOnServer
.Start
End With
End Sub
Sub objXFRequest_TransferComplete()
With objArchive
'-- Set ArchiveType for a *.zip file
.ArchiveType = 1
.OpenArchive(pathToFileOnClient)
.ExtractPath = pathExtract
.Extract
.CloseArchive
End With
msgbox "The following file has been downloaded to: " &_ pathToFileOnClient & ". " & _
"Files have been extracted to: " & pathExtract & "."
End Sub
</SCRIPT>
</BODY>
</HTML>
|