Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Problema con download usando ADODB.Stream

    Ciao, ho creato una pagina ASP che permette di effettuare il download forzato di un file passando il nome tramite querystring.
    Purtroppo ho notato che i file di grosse dimensioni non vengono scaricati tramite questa procedura, ma ricevo l'errore: "Impossibile aprire il sito internet, Sito non disponibile o non trovato. Riprovare in un secondo momento".
    Ovviamente i file di dimensioni ridotte vengono scaricati tranquillamente.
    Vorrei capire se questo è un problema dell'oggetto ADODB.Stream, in questo caso avreste un alternativa da segnalarmi?

    Grazie
    http://www.firesoftweb.it - Servizi gratuiti per il tuo sito web: forum, guestbook, contatori visite...

  2. #2
    Utente di HTML.it L'avatar di legal-x
    Registrato dal
    Nov 2000
    Messaggi
    628
    Stai usando questo ?


    Function BaseName(byVal Path)
    Dim Pos
    Path = Replace(Path,"/","\")
    Pos = InStrRev(Path,"\")
    If Pos>0 then
    BaseName = Mid(Path,Pos+1)
    Else
    BaseName = Path
    End if
    end function

    Function ReadFile(FileName)
    Dim Stream , Path
    On error resume next
    Path = Server.MapPath(FileName)
    If Err.Number<>0 then Path = FileName
    On error goto 0
    Set Stream = Server.CreateObject("ADODB.Stream")
    Stream.Type=1
    Stream.Open()
    Stream.LoadFromFile Path
    Stream.Position=0
    ReadFile = Stream.Read()
    Stream.Close()
    Set Stream = Nothing
    End Function

    Server.ScriptTimeout=6000
    if Len(Trim(request.querystring("file"))) > 0 then
    file = (request.querystring("file"))
    else
    Response.Write("file non specificato")
    Response.end
    end if

    response.ContentType="application/octet-stream"
    response.AddHeader "Content-Disposition", "attachment; filename=" & BaseName(file)
    Response.BinaryWrite ReadFile(File)
    Response.End
    Webplease.it WebAgency
    www.webplease.it

  3. #3
    Ciao, grazie per lo script, purtroppo mi da errore durante l'esecuzione...

    Execution of the ASP page caused the Response Buffer to exceed its configured limit

    Ho provato a impostare anche Server.ScriptTimeout=6000 e Response.Buffer = false / true ma non è cambiato niente...

    È possibile che dipenda dalle dimensioni del file?
    http://www.firesoftweb.it - Servizi gratuiti per il tuo sito web: forum, guestbook, contatori visite...

  4. #4
    Utente di HTML.it L'avatar di legal-x
    Registrato dal
    Nov 2000
    Messaggi
    628
    prova prima con piccoli file ...max 500Kb per vedere se funziona "a dovere"


    ...in ogni caso, quant'è grande il tuo file ?
    Webplease.it WebAgency
    www.webplease.it

  5. #5
    È un area download, quindi c'è di tutto... al momento il file più grande è 45 Mb, ma in futuro potrei anche aggiungere roba piu pesante...
    Il fatto è che voglio utilizzare una pagina asp per far partire il download per vari motivi.
    Primo posso contare i download fatti.
    Secondo posso impedire all'utente di sapere dove si trova il file fisicamente sul server per evitare di linkarlo dal proprio sito (es. passo come valore download.asp?file=prova e lo script mi va a prelevare il file dalla cartella download/quellochevoglio/prova.zip)
    Terzo dalla pagina asp posso fare un controllo sul referer per evitare che qualcuno linki i miei file da altre pagine...
    Possibile che asp non gestisca file pesanti??
    Potrei farlo con PHP ma il mio sito è interamente in asp e preferirei evitare di usare troppi linguaggi diversi...
    http://www.firesoftweb.it - Servizi gratuiti per il tuo sito web: forum, guestbook, contatori visite...

  6. #6
    invece di fare uno streaming secco, fai così

    codice:
    	Do While Not objStream.EOS
    		Response.BinaryWrite objStream.Read(8192)	'	1024*8
    		Response.Flush
    	Loop
    puoi giocare con le dimensioni del buffer

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.