Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Download file

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482

    Download file

    Piccolo tutorial su come permettere il download di un file salvato nel server.

    creare una web form chiamata "download.aspx" ed incollare questo codice:

    codice:
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim filepath As String = Request.Params("file")
            If Not filepath Is Nothing Then
                If File.Exists(filepath) Then
                    Dim filename As String = Path.GetFileName(filepath)
                    Response.Clear()
                    Response.ContentType = "application/octet-stream"
                    Response.AddHeader("Content-Disposition", _
                      "attachment; filename=""" & filename & """")
                    Response.Flush()
                    Response.WriteFile(filepath)
                End If
            End If
        End Sub
    Dalle vostre web form richiamate questa pagina in questo modo:

    codice:
    <a href="download.aspx?file=c:\percorso\file.estenzione">
    oppure

    codice:
    Response.Redirect("download.aspx?file=c:\percorso\file.estenzione")
    L'ho testato con il service pack 2 di Win XP e funziona.
    Se trovate bug ditelo.

    Fonte

    Ciao ciao!

    Hey hey, my my Rock and roll can never die!

  2. #2
    Se 20 persone contemporaneaente scaricano un file di qualche mega con questa tecnica, il tuo server si suicida.

    Ciao
    AZ [Microsoft - .NET MVP]
    Mia Home page: http://ciclismo.sitiasp.it
    Asp.Net community: http://www.aspitalia.com
    Il mio blog: http://blogs.aspitalia.com/az

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da AndreaZani
    Se 20 persone contemporaneaente scaricano un file di qualche mega con questa tecnica, il tuo server si suicida.

    Ciao
    Ehm! io uso quel metodo ma non voglio diventare un servericida recidivo come si può fare a non suicidare il server?

    Pietro

  4. #4
    Originariamente inviato da AndreaZani
    Se 20 persone contemporaneaente scaricano un file di qualche mega con questa tecnica, il tuo server si suicida.

    Ciao
    Completamente in disaccordo.

  5. #5
    Completamente in disaccordo.
    Sai come funziona il WriteFile della classe httpReponse?

    Ciao
    AZ [Microsoft - .NET MVP]
    Mia Home page: http://ciclismo.sitiasp.it
    Asp.Net community: http://www.aspitalia.com
    Il mio blog: http://blogs.aspitalia.com/az

  6. #6
    Io si te?
    Altra domanda, se abituato a server localizzati in africa su P100 con 32Mb di ram?


    Senza offesa

  7. #7
    Ce ne vuole per offendermi

    Be', tu dici di saperlo, ma allora sapresti anche che WriteFile apre uno stream verso il file da inviare, quindi carica completamente il contenuto in ram e infine lo invia al server che poi lo invierà al client. Due problemi comporta questa tecnica: occupazione della memoria per il caricamento del file (immagina un file di una decina di mega richiesto da da parecchi utenti contemporaneamente, caso non proprio estremo) e l'occupazione per quel lasso di tempo del worked-process di asp.net per il rinvio dei dati.

    L'ideale è usare gli handler. E se non credi a me trovi parecchia documentazione in rete, per esempio:
    http://www.dotnetjunkies.com/Article...B2E50CBFA.dcik

    Ciao
    AZ [Microsoft - .NET MVP]
    Mia Home page: http://ciclismo.sitiasp.it
    Asp.Net community: http://www.aspitalia.com
    Il mio blog: http://blogs.aspitalia.com/az

  8. #8
    Per il download di un file ho utiizzato un metodo simile a quello che ha postato zampa28, però sulla barra dell'indirizzo si vede il percorso del file, come potrei nasconderlo?
    Grazie

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 © 2025 vBulletin Solutions, Inc. All rights reserved.