Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    207

    Imporre download di un file

    Ho la necessità di fare in modo che quando l'utente clicca su un collegamento verso un determinato file appaia la finestra che richiede se si vuole salvare il file e questo non si apra automaticamente nel browser (si tratta prevalentemente di file PDF).
    Ho trovato questo codice ma non fa al caso mio perché suppone che il file si trovi sullo stesso server dell'applicativo web, mentre i file si trovano altrove.

    codice:
            Imports System.IO
    
            Response.Expires = -1
            Dim strPath As String = Me.Server.MapPath("immagine.jpg")
            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.TransmitFile(strPath)
                Response.End()
            Else
                Response.Write("File non trovato.")
            End If
    Come posso fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    120
    se il tuo intento è mettere in pagina link tipo
    http://altroserver/file.pdf

    e forzare il download credo sia impossibile : il browser del client farà una richiesta a altroserver senza interpellarti, quindi non potrai agire sul ResponseHeader per forzare il download

    Quello che devi fare è mettere link del tipo

    http://mioserver/DownloadFile.aspx?u...erver/file.pdf

    in pagina dovrai recuperare il file e poi metterlo nella tua response, potendo agire a questo punto sull'header


    codice:
      Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
        MyBase.OnLoad(e)
        Dim wc As New System.Net.WebClient
        Dim RIS() As Byte = wc.DownloadData(Request.QueryString("url"))
        Response.Clear()
        Response.AddHeader("Content-Disposition", "attachment; filename=""MioPDF.pdf""")
        Response.ContentType = "application/octet-stream"
        Response.BinaryWrite(RIS)
        Response.End()
        
      End Sub

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.