VC Component source - 43 Kb
VB Component source - 6 Kb
Example ASP script - 1 Kb
Introduction
This article is about direct file downloading through a COM component. It uses the
IResponse
interface to send a file directly to the client browser.
With this approach you can protect your files from being downloaded by an unauthorized
person.
To send the file to the client you need to register this kind of file within the IIS
MIME types. To do it go to the ISS administration and under the HTTP Header add this kind
of file. In the sample a zip file is used, so the MIME type is:
Extension=.zip
ContentType=application/x-zip-compressed
To send a file to the browser you must set the Response.Buffer
to
TRUE
and the ContentType
to the file type. After this you
send the data using the Response
object through the BinaryWrite
method.
To accomplish this task a component was developed: FileTransfer
. The
interface used is called IBinaryRead
. These are its methods:
Method |
Description |
ReadBinFile(filename) |
This method returns the content of the file as an VARIANT (SAFEARRAY) |
ResponseBinaryWrite(filename, responseObject) |
This method reads the file and send it using the Response object. It returns the operation result |
If you want to download a custom file type, you must register it in the client machine too.
An example of using the FileTransfer
object follows:
<%
Option Explicit
Dim objBinaryRead
Dim saBinFile
Dim bDownloadStatus
Set objBinaryRead = CreateObject("FileTransfer.BinaryRead")
Response.Buffer = true
Response.ContentType = "application/x-zip-compressed"
bDownloadStatus = objBinaryRead.ResponseBinaryWrite("c:\temp\test.zip", Response)
Set objBinaryRead = nothing
%>