How to download large (400MB +) files from an asp.net page???

Discussion in 'ASP General' started by Thomas Andersson, Jul 12, 2005.

  1. Hi,

    I am trying to find a working solution for download of large files (400-800
    MB)...
    But this seems almost impossible to find a working example.

    I have tried Response.Transmitfile, this works for some people…but in my
    case the server reset the connection after approx. 20 minutes and sometimes
    after
    7-8 minutes…the download speed is however very good 400MB takes about 10
    minutes to download.

    I have also tried the code below, this solution also resets the connection
    after 4-5 MB…and the download goes very slow approx. 55 kb/s…

    Please does anyone have any ideas or proposals?
    Is it possible to download via FTP?
    Is it possible to use resume of broken downloads somehow?
    Are there any components on the market that can achieve this?

    'Download the selected file

    Response.Buffer = False
    Server.ScriptTimeout = 100
    Dim FullPath As String = Server.MapPath(currentPath + StrFileName)
    Dim DownloadFileInfo As New FileInfo(FullPath)
    Dim Name = DownloadFileInfo.Name
    Dim Ext = DownloadFileInfo.Extension
    Dim stream = New System.IO.FileStream(FullPath, System.IO.FileMode.Open,
    System.IO.FileAccess.Read, System.IO.FileShare.Read)
    Dim StrFileType As String = ""
    If Not IsDBNull(Ext) Then
    Ext = LCase(Ext)
    End If
    Select Case Ext
    Case ".exe"
    'Exe file
    StrFileType = "application/octet-stream"
    Case ".zip"
    'Zip file
    StrFileType = "application/x-zip-compressed"
    Case ".pdf"
    'Pdf file
    StrFileType = "application/pdf"
    Case ".doc"
    'MS Word
    StrFileType = "Application/msword"
    Case ".dll"
    'Dll file
    StrFileType = "application/x-msdownload"
    Case ".html", ".htm"
    'Html file
    StrFileType = "text/HTML"
    Case ".txt"
    'Txt file
    StrFileType = "text/plain"
    Case ".jpeg", ".jpg"
    'Jpg picture
    StrFileType = "image/JPEG"
    Case Else
    StrFileType = "application/octet-stream"
    End Select
    'Clear the headers
    Response.ClearHeaders()
    Response.ClearContent()
    Response.Clear()
    'Add the download headers
    Response.ContentType = "application/octet-stream"
    Response.AddHeader("Content-Disposition", "attachment; filename=" + Name)
    If StrFileType <> "" Then
    Response.ContentType = StrFileType
    End If
    Response.AddHeader("Content-Length", DownloadFileInfo.Length)
    Dim buffer(10000) As Byte
    Dim length As Long
    'Total bytes to read:
    Dim bytesToRead As Long = stream.Length
    Dim UserHasDownload As Boolean = False
    Try
    'Read the bytes from the stream in small portions.
    While (bytesToRead > 0)
    'Make sure the client is still connected.
    If (Response.IsClientConnected) Then
    'Read the data into the buffer and write into the output stream.
    length = Int(stream.Read(buffer, 0, 10000))
    Response.OutputStream.Write(buffer, 0, length)
    Response.Flush()
    'We have already read some bytes.. need to read only the remaining.
    bytesToRead = bytesToRead - length
    UserHasDownload = True
    Else
    'Get out of the loop, if user is not connected anymore..
    bytesToRead = -1
    UserHasDownload = False
    End If
    End While
    Catch
    'An error occurred..
    Finally
    End Try
    stream.Close()
     
    Thomas Andersson, Jul 12, 2005
    #1
    1. Advertising

  2. "There was no way for you to know it, but this is a classic asp newsgroup.
    While you may be lucky enough to find a dotnet-knowledgeable person here who
    can answer your question, you can eliminate the luck factor by posting your
    question to a group where those dotnet-knowledgeable people hang out. I
    suggest microsoft.public.dotnet.framework.aspnet."¹

    Ray at work

    ¹ Response courtesy of Bob Barrows

    "Thomas Andersson" <> wrote in
    message news:...
    > Hi,
    >
    > I am trying to find a working solution for download of large files

    (400-800
    > MB)...
    > But this seems almost impossible to find a working example.
    >
    > I have tried Response.Transmitfile, this works for some people…but in my
    > case the server reset the connection after approx. 20 minutes and

    sometimes
    > after
    > 7-8 minutes…the download speed is however very good 400MB takes about 10
    > minutes to download.
    >
    > I have also tried the code below, this solution also resets the connection
    > after 4-5 MB…and the download goes very slow approx. 55 kb/s…
    >
    > Please does anyone have any ideas or proposals?
    > Is it possible to download via FTP?
    > Is it possible to use resume of broken downloads somehow?
    > Are there any components on the market that can achieve this?
    >
    > 'Download the selected file
     
    Ray Costanzo [MVP], Jul 12, 2005
    #2
    1. Advertising

  3. Hi Ray,

    Thank you for letting me know this.
    The reason that I posted here was that I have already posted my question on
    the microsoft.public.dotnet.framework.aspnet forum.
    Bu no one has answered two of my earlier questions on that forum.
    So I was hoping that someone here could answer…


    /Thomas ;o)

    "Ray Costanzo [MVP]" wrote:

    > "There was no way for you to know it, but this is a classic asp newsgroup.
    > While you may be lucky enough to find a dotnet-knowledgeable person here who
    > can answer your question, you can eliminate the luck factor by posting your
    > question to a group where those dotnet-knowledgeable people hang out. I
    > suggest microsoft.public.dotnet.framework.aspnet."¹
    >
    > Ray at work
    >
    > ¹ Response courtesy of Bob Barrows
    >
    > "Thomas Andersson" <> wrote in
    > message news:...
    > > Hi,
    > >
    > > I am trying to find a working solution for download of large files

    > (400-800
    > > MB)...
    > > But this seems almost impossible to find a working example.
    > >
    > > I have tried Response.Transmitfile, this works for some people…but in my
    > > case the server reset the connection after approx. 20 minutes and

    > sometimes
    > > after
    > > 7-8 minutes…the download speed is however very good 400MB takes about 10
    > > minutes to download.
    > >
    > > I have also tried the code below, this solution also resets the connection
    > > after 4-5 MB…and the download goes very slow approx. 55 kb/s…
    > >
    > > Please does anyone have any ideas or proposals?
    > > Is it possible to download via FTP?
    > > Is it possible to use resume of broken downloads somehow?
    > > Are there any components on the market that can achieve this?
    > >
    > > 'Download the selected file

    >
    >
    >
     
    Thomas Andersson, Jul 12, 2005
    #3
  4. Thomas Andersson

    Evertjan. Guest

    =?Utf-8?B?VGhvbWFzIEFuZGVyc3Nvbg==?= wrote on 12 jul 2005 in
    microsoft.public.inetserver.asp.general:

    > Hi Ray,
    >
    > Thank you for letting me know this.
    > The reason that I posted here was that I have already posted my
    > question on the microsoft.public.dotnet.framework.aspnet forum.
    > Bu no one has answered two of my earlier questions on that forum.
    > So I was hoping that someone here could answerƒ Ý
    >


    There was no way for Ray to know that. ;-}

    --
    Evertjan.
    The Netherlands.
    (Replace all crosses with dots in my emailaddress)
     
    Evertjan., Jul 12, 2005
    #4
  5. Hi Evertjan,

    Well that is true...
    I was only answering, I did not mean to be unpleasant ;-)

    "Evertjan." wrote:

    > =?Utf-8?B?VGhvbWFzIEFuZGVyc3Nvbg==?= wrote on 12 jul 2005 in
    > microsoft.public.inetserver.asp.general:
    >
    > > Hi Ray,
    > >
    > > Thank you for letting me know this.
    > > The reason that I posted here was that I have already posted my
    > > question on the microsoft.public.dotnet.framework.aspnet forum.
    > > Bu no one has answered two of my earlier questions on that forum.
    > > So I was hoping that someone here could answerÆ’ Ã
    > >

    >
    > There was no way for Ray to know that. ;-}
    >
    > --
    > Evertjan.
    > The Netherlands.
    > (Replace all crosses with dots in my emailaddress)
    >
    >
     
    Thomas Andersson, Jul 12, 2005
    #5
  6. Thomas Andersson

    Evertjan. Guest

    =?Utf-8?B?VGhvbWFzIEFuZGVyc3Nvbg==?= wrote on 12 jul 2005 in
    microsoft.public.inetserver.asp.general:
    >> =?Utf-8?B?VGhvbWFzIEFuZGVyc3Nvbg==?= wrote on 12 jul 2005 in
    >> microsoft.public.inetserver.asp.general:
    >>
    >> > Hi Ray,
    >> >
    >> > Thank you for letting me know this.
    >> > The reason that I posted here was that I have already posted my
    >> > question on the microsoft.public.dotnet.framework.aspnet forum.
    >> > Bu no one has answered two of my earlier questions on that forum.
    >> > So I was hoping that someone here could answerÆ’ Ã
    >> >

    >>
    >> There was no way for Ray to know that. ;-}

    >
    > Well that is true...
    > I was only answering, I did not mean to be unpleasant ;-)


    It wasn't ment to be reproachful.

    I just liked to echo the "no way to know".

    [However, in general, if you you try a second NG with the same Q,
    better say so to prevent multiposting flames.]


    --
    Evertjan.
    The Netherlands.
    (Replace all crosses with dots in my emailaddress)
     
    Evertjan., Jul 12, 2005
    #6
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. r dubey
    Replies:
    2
    Views:
    3,320
    ʹÃûÑï
    Dec 15, 2003
  2. =?Utf-8?B?VGhvbWFzIEFuZGVyc3Nvbg==?=

    How to download large (400MB +) files from an asp.net page???

    =?Utf-8?B?VGhvbWFzIEFuZGVyc3Nvbg==?=, Jul 12, 2005, in forum: ASP .Net
    Replies:
    0
    Views:
    497
    =?Utf-8?B?VGhvbWFzIEFuZGVyc3Nvbg==?=
    Jul 12, 2005
  3. Daniel Fisher\(lennybacon\)

    Re: How to download large (400MB +) files from an asp.net page???

    Daniel Fisher\(lennybacon\), Jul 12, 2005, in forum: ASP .Net
    Replies:
    1
    Views:
    813
    =?Utf-8?B?VGhvbWFzIEFuZGVyc3Nvbg==?=
    Jul 12, 2005
  4. =?Utf-8?B?UGV0ZXJU?=
    Replies:
    3
    Views:
    414
    Yuan Ren[MSFT]
    Jan 22, 2006
  5. =?Utf-8?B?dGhlaGVyY21hbg==?=

    Forms Authentication, Cant download large files

    =?Utf-8?B?dGhlaGVyY21hbg==?=, Jan 20, 2006, in forum: ASP .Net
    Replies:
    3
    Views:
    472
    Joerg Jooss
    Jan 21, 2006
Loading...

Share This Page