Download of large files in ASP

          Sample for ScriptUtils.ByteArray.ReadFrom 

Examples
Download of large files in ASP 
<%
	'bigdownload.asp - download of files with size up to 2GB
	'Sample for ScriptUtils.ByteArray
	'c2003, http://www.motobit.com

	SendFileByBlocks "F:\work\WebLib.dll", 65535

	Sub SendFileByBlocks(FileName, BlockSize)
		Dim FileSize, ByteCounter
		FileSize = CreateObject("scripting.filesystemobject").GetFile(FileName).Size

		'Switch off buffer.
		Response.Buffer = False

		'This is download
		Response.ContentType = "application/x-msdownload"

		'Set file name
		Response.AddHeader "Content-Disposition", _
		  "attachment; filename=""" & GetFileName(FileName) & """"

		'Set Content-Length (ASP doen not set it when Buffer = False)
		Response.AddHeader "Content-Length", FileSize
		'Response.CacheControl = "no-cache"

		Dim BA
		Set BA = CreateObject("ScriptUtils.ByteArray")

		'Loop through file contents.
		For ByteCounter = 1 To FileSize Step BlockSize
			'Do not write data when client is disconnected
			If Not Response.IsClientConnected() Then Exit For

			'Read block of data from a file
			BA.ReadFrom FileName, ByteCounter, BlockSize

			'Write the block to output.
			Response.BinaryWrite BA.ByteArray
		Next
		
	End Sub


	Function GetFileName(FullPath)
		Dim Pos, PosF
		PosF = 0
		For Pos = Len(FullPath) To 1 Step -1
			Select Case Mid(FullPath, Pos, 1)
				Case ":", "/", "\": PosF = Pos + 1: Pos = 0
			End Select
		Next
		If PosF = 0 Then PosF = 1
		GetFileName = Mid(FullPath, PosF)
	End Function
%>
  Other links for Download of large files in ASP
Works with safearray binary data - save/restore binary data from/to a disk, convert to a string/hexstring, codepage/charset conversions, Base64 conversion, etc.
     ByteArray is a COM class specially designed to work with Microsoft Windows Scripting engines - VB Script and JScript in Active Server Pages or WSH and in CHM or HTA applications. It also works with VB Net, Visual basic (VBA - VB 5, VB 6, Word, Excel, Access, …), C#, J#, C++, ASP, ASP.Net, Delphi and with T-SQL OLE functions - see Use ByteArray object article. You can also use the object in other programming environments with COM support, such is PowerBuilder.
     Source code for ByteArray is available within distribution license, please see License page for ScriptUtilities and Huge ASP file upload.
      Easy to use, hi-performance ASP file upload component with progress bar indicator. Let's you upload multiple files with size up to 2GB to a disk or database along with another form fields. Works with large posts, any character set (including unicode utf-8). Contains one-click multiple files/folders download with on-the-fly compression (Using BinaryWrite/BinaryRead).
      Hi-performance text file logging for ASP/VBScript/VBA applications. Lets you create daily/weekly/monthly log files with variable number of logged values and extra timing and performance info.
       Lets you work with safearray binary data in VBS/JS. It also enables conversion between binary and String data using several code pages. ZLib compress and uncompress functions. Lets you transfer files using compressed stream from a client to server using IE.
      This library also enables calling of some Kernel and Advapi functions (performance, timing, sleep, configuration ...) and enables native work with INI files.


© 1996 – 2005 Motobit Software, help{at}pstruh.cz, help v. 2.16.14