Click here to Skip to main content
15,886,872 members
Articles / Web Development / IIS
Article

File downloading with COM and ASP

,
Rate me:
Please Sign up or sign in to vote.
4.91/5 (11 votes)
5 Sep 2000 287.1K   4.7K   50   59
A COM object you can use to transfer files in ASP
  • 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:

    MethodDescription
    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		'if you don't want error safe
    	Dim bDownloadStatus
    	
    	Set objBinaryRead = CreateObject("FileTransfer.BinaryRead")
    		 
    	Response.Buffer      = true
    	Response.ContentType = "application/x-zip-compressed"
    
    	'transfer the file to the client		
    	bDownloadStatus = objBinaryRead.ResponseBinaryWrite("c:\temp\test.zip", Response)
    	
    	'this is not an error safe code
    	'if the file doesn't exist the ASP will have an error
    	'saBinFile = objBinaryRead.ReadBinFile("c:\temp\test.zip")     
    	'Response.BinaryWrite saBinFile
    	'Set saBinFile     = nothing
    	
    	Set objBinaryRead = nothing
    %>

    License

    This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

    A list of licenses authors might use can be found here


    Written By
    Architect VisionOne AG
    Switzerland Switzerland
    XicoLoko is a brazilian developer based in Switzerland.

    Written By
    United States United States
    This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

    Comments and Discussions

     
    AnswerRe: How set File Download dialog Pin
    14-Jun-01 4:13
    suss14-Jun-01 4:13 
    GeneralRe: How set File Download dialog Pin
    13-Aug-01 7:24
    suss13-Aug-01 7:24 
    AnswerRe: How set File Download dialog Pin
    25-May-02 19:12
    suss25-May-02 19:12 
    GeneralDownloading without COM Pin
    18-Mar-01 22:28
    suss18-Mar-01 22:28 
    GeneralDownload Pin
    Parjeet Singh5-Feb-01 15:35
    Parjeet Singh5-Feb-01 15:35 
    GeneralError when IIS debug mode is enabled Pin
    David Zhao25-Sep-00 8:17
    David Zhao25-Sep-00 8:17 
    QuestionWhat about file uploading? Pin
    Jake12-Sep-00 8:16
    Jake12-Sep-00 8:16 
    AnswerRe: What about file uploading? Pin
    xicoloko12-Sep-00 10:40
    xicoloko12-Sep-00 10:40 
    Try the File Uploading with COM and ASP
    AnswerRe: What about file uploading? Pin
    13-Jul-01 18:05
    suss13-Jul-01 18:05 
    GeneralRe: What about file uploading? Pin
    27-Jul-01 20:15
    suss27-Jul-01 20:15 

    General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

    Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.