Problem with file downloading
- From: "Zam" <zam@xxxxxxxx>
- Date: Tue, 14 Jun 2005 02:35:29 +0300
Hello World,
Windows 2000 Server, IIS 5.0.
I need to create page, which will be push file for downloading, when user
click on link.
I need to keep file location in security. Only authorized users will be able
to download file. Files for downloads located outside /wwwroot/ folder.
The big problem, which I don't know how to resolve, is: when user #1 click
on link, and "Start download" window appear on client computer, all other
connection with server are stopping handle -- server wait while user #1 will
start download, or cancel download. Also, while one user download some file,
server are not responding on other users requests. What should I do? Server
should handle in the same time at least 10 requests for downloads.
Code sample below:
<%
Dim VPath, Path, MyStream, MyFile, MyFSO
Server.ScriptTimeout = 3600
VPath = Request.QueryString
Path = Server.MapPath ("../../" & VPath)
Set MyFSO = CreateObject ("Scripting.FileSystemObject")
Set MyFile = MyFSO.GetFile (Path)
If Err.number = 0 then
If Response.IsClientConnected Then
Set MyStream = MyFile.OpenAsTextStream (1, -1)
With Response
.Buffer = True
.ContentType = "application/binary"
.AddHeader "Content-Disposition","attachment;filename=" & MyFile.name
.Flush
End With
Do
Response.BinaryWrite MyStream.Read (1024000 / 2)
Response.Flush
If Not Response.IsClientConnected Then
Exit Do
End If
Loop until MyStream.AtEndOfStream
MyStream.Close
Set MyStream = Nothing
End If
End if
Set MyFile = Nothing
Set MyFSO = Nothing
%>
and also I try this code -- with the same bad result
<%
Response.Buffer = False
Server.ScriptTimeout = 30000
Response.ContentType = "application/x-unknown"
fn = Request.QueryString
If fn = "" then
Response.Redirect ("default.asp")
End If
FPath = "G:\" & fn
Response.AddHeader "Content-Disposition", "attachment; filename=" & fn
Set adoStream = CreateObject("ADODB.Stream")
chunk = 2048
adoStream.Mode = adModeRead
adoStream.Open ()
adoStream.Type = 1
adoStream.LoadFromFile (FPath)
iSz = adoStream.Size
Response.AddHeader "Content-Length", iSz
For i = 1 To iSz \ chunk
If Not Response.IsClientConnected Then Exit For
Response.BinaryWrite adoStream.Read(chunk)
Next
adoStream.Close
Set adoStream = Nothing
Response.End
%>
With best regards,
.
- Prev by Date: How can i implement Multilanguage support in my Application.
- Next by Date: Problem with file downloading -- Part 2
- Previous by thread: How can i implement Multilanguage support in my Application.
- Next by thread: Problem with file downloading -- Part 2
- Index(es):
Relevant Pages
|