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

    ADO.NET Streaming anziche ADO AIUTO VI PREGO

    buongiorno, vorrei chiedere un favore immenso alle persone che conoscono ado.net a fondo per asp.net. Ho la necessita, per una questione di sicurezza di contenuti, di nascondere i link di download anche alle persone registrate all'intern del sito web. Per far cio' ho usato una pagina asp 3.0 che implementa ADO con questo codice all'interno:


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">;

    <html xmlns="http://www.w3.org/1999/xhtml"; >
    <head><title>Download</title></head>
    <body>


    <!--METADATA TYPE="typelib"
    UUID="00000205-0000-0010-8000-00AA006D2EA4"
    NAME="ADODB Type Library"
    -->
    <%
    ' METADATA SERVE PER IMPORTARE LE COSTANTI DI ADO2.5

    Response.Buffer = true


    Set objStream = Server.CreateObject("ADODB.Stream")

    objStream.Type = adTypeBinary
    objStream.Open
    scarica = Request.QueryString("NomeInCodice")
    If scarica = "1" Then scarica1 = "FRNNF.PDF"
    If scarica = "2" Then scarica1 = "FZZZZ.PDF"
    objStream.LoadFromFile Server.MapPath("/public/domodossola/" & scarica1)

    ' stream generico, IE chiede di salvare
    Response.ContentType = "application/octet-stream"

    Response.AddHeader "Content-Disposition", "attachment; filename=" & scarica & ".pdf"
    Response.AddHeader "Content-Length", strFileSize
    Response.Charset = "UTF-8"
    Response.ContentType = ContentType
    Do While Not objStream.EOS
    Response.BinaryWrite objStream.Read(1024)
    Response.Flush
    Loop
    objStream.Close
    Set objStream = Nothing


    %>


    </body>
    </html>


    Il codice funziona a meraviglia visto che spezzetta nel buffer file anche di 150MB !!! Molti script su internet non funzionano per file immensi... questo e' una meraviglia.

    HA SOLO UN DIFETTO !!!!

    Siccome il sito e' fatto in asp.net linguaggio VB, non posso trasferire la var di sessione alla pagina web asp 3.0 riportata sopra. quindi scoperto il link della pagina asp 3.0 con un download manager si possono scaricare i contenuti senza neanche essere registrati al sito.

    Le soluzioni a cui avevo pensato sono due:

    1) trasformare la pagina asp 3.0 in asp.net (CHE NON SO FARE... qualcuno potrebbe tradurla??)

    2) Scrivere un file su disco di sessione e cancellarlo dopo il download?? ma si puo fare? quando si capisce che il download e' davvero finito e non messo in pausa o roba simile??

    3)perche' non posso passare una variabile di sessione ''comune'' dalle pagine aspx alle pagine asp?? Mannaggia... come risolvo il problema?? Devo proprio trascrivere il codice in .net mi sa!!!!

    Vi prego aiutatemi!! E' davvero importante.... su internet non sono riuscito a trovare nulla sul download forzato in asp.net

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    336
    codice:
    <%@Import Namespace="System.IO"%>
    <script language="vb" runat="server">
    
    Sub Page_Load()
    	
    		
    		
    		Dim strPath as String = Server.MapPath("cartellafiles/miofile.zip)
    		
    		Dim file as FileInfo = New FileInfo(strPath)
    		
    		If file.Exists Then
    			
    			Response.Clear()
    			Response.AddHeader("Content-Disposition", "attachment; filename=" & file.Name)
    			Response.AddHeader("Content-Length", file.Length.ToString())
    			Response.ContentType = "application/octet-stream"
    			
    			
    			Response.WriteFile(strPath)
    			Response.End()
    		Else
    			Response.write("Impossibile scaricare il file. 
    Potrebbero esserci problemi su server. 
    Riprovare successivamente.")
    		End If
    		
    End Sub
    	
    </script>
    Questo può andare?

    In alternativa io uso questo script al contrario, da asp a asp.net e per il passaggio delle variabili uso dei semplici cookies

  3. #3

    Grazie ma attento senza buffer..

    Grazie.. io ho già risolto... se vuoi ti posto una soluzione migliore che spezzetta in buffer porzioni di file binario letto dal server per evitare crash su alcuni client...

    sei stato gentilissimo... fammi sapere.

    ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    336
    Sì, certo, posta pure, così può tornare utile a tutti

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.