Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Download file forzato

  1. #1

    Download file forzato

    Buonasera a lorsignori!
    Sto usando questo codice per forzare il download di un file da pagina ASP.
    Codice PHP:
    Response.Expires=0
    Response
    .Buffer=0
    Const BLOCCO 1024
    strFilePath 
    Server.MapPath(percorsofile nomefile)
    Set fso Server.CreateObject("Scripting.FileSystemObject")

        
    set objFile fso.GetFile(strFilePath)
        
    Response.AddHeader "Content-Disposition""attachment; filename=" objFile.Name
        Response
    .AddHeader "Content-Length"objFile.Size
        Response
    .ContentType "application/octet-stream"
        
    Set objStream Server.CreateObject("ADODB.Stream")
        
    objStream.Open
        objStream
    .Type ' adTypeBinary
        objStream.LoadFromFile strFilePath
        lSize = objStream.Size
        lBlocks = 1
        For lBlocks = lBlocks To lSize \ BLOCCO
             If Response.IsClientConnected = False Then Exit For
             Response.BinaryWrite objStream.Read(BLOCCO)
        Next
        lSize = lSize Mod BLOT
        If lSize > 0 And Response.IsClientConnected = True Then
        Response.BinaryWrite objStream.Read(lSize)
        End If
        objStream.Close
        Set objStream = Nothing 
    Chiaramente uso application/octet-stream perchè non so in partenza il tipo di file che verrà scaricato.

    Con Explorer6.0 succede una cosa strana: quando eseguo lo script appare la finestra di download con i pulsanti Apri/Salva... Se clicco su Salva..., nessun problema tutto viene eseguito alla perfezione. Se invece clicco su Apri, si apre l'applicazione (es. Acrobat) ma poi ricevo l'errore "Impossibile trovare il file"; stesso comportamento anche con estensioni XLS e DOC.

    Avevo trovato questa pagina
    http://classicasp.aspfaq.com/general...mime-type.html
    e ad un certo punto c'è scritto qualcosa che farebbe al caso mio:

    Some users have found that Internet Explorer prompts users with two open/save as dialogs. This is likely because you have sent the filename in both the ContentType and the AddHeader/Content-Disposition headers. To resolve the issue, use only the AddHeader variant.

    Tuttavia con use only the AddHeader variant mica ho capito cosa intende!!!! Ho provato ad eliminare la riga Response.ContentType = "application/octet-stream" ma il comportamento non è cambiato di un millimetro!

    Fatemi capire, è un baco di IE6 (ho testato su FF e IE7 e aprono correttamente il file) o si può cambiare qualcosa nel codice ASP per risolvere il problema??
    :master:

    NB: L'utente che clicca su "scarica il file" non dovrebbe poi cliccare su Apri, sono d'accordo con voi. Ma purtroppo conoscete i navigatori, non abbiamo ancora un linguaggio che regoli i loro comportamenti. Io inizierei a svilupparlo: DummyUser1.0....
    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

  2. #2
    è solo un tentativo che nasce da alcune letture casuali su internet, ma potresti:

    provare a settare il content-type prima degli altri header.
    e/o
    provare a settare il content-type a "application/x-unknown"
    e/o
    provare a chiudere la stringa del content-disposition con un ";" finale
    e/o
    aggiungere un label "cercatelo su emule".

    xxx

  3. #3
    Niente da fare Alethesnake, ho provato le prime 3 alternative (anche combinandole tra loro), ma il risultato è sempre lo stesso.
    Dite che non mi resta che la 4^ via???

    aggiungere un label "cercatelo su emule".
    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

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.