413 messaggi dal 22 giugno 2007
La cosa strana che se imposto nel PostBackUrl

"DownloadHanlder.ashx?fileName=" + url;

Funziona correttamnte
2.198 messaggi dal 30 novembre 2001
devi inserirlo nella cartella App_Code
413 messaggi dal 22 giugno 2007
la cartella App_Code??
Io non ho questa cartella e se cado i aggiungi cartella aspnet non la trovo.
2.198 messaggi dal 30 novembre 2001
Se non la trovi facendo add, è perchè avrai creato un'applicazione asp.net e non un nuovo sito web, cmq puoi sempre aggiungerla a mano sotto la root dell'applicazione, tutto quello che ci metti sotto quella cartella sarà visibile a livello globale dell'applicazione.
413 messaggi dal 22 giugno 2007
Creato la cartella, spostao Hanlder

codice pulsante
protected void GetFile(object sender, EventArgs e)
{
   string fileName = "Contratto_Licenza_Dinamico_Educational.pdf";
   string script = string.Format("window.location.href='{0}DownloadHanlder.ashx?url={1}'",this.RootUrl, fileName);
   this.ClientScript.RegisterStartupScript(this.GetType(), this.GetType().Name, script, true);
}


Cidice Hanlder
public class DownloadHanlder : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            string url = context.Request.QueryString.Get("url");
            string path = context.Server.MapPath(url);
            string fileName = Path.GetFileName(path);

            HttpResponse response = context.Response;
            response.Clear();
            response.ContentType = "application/pdf";
            response.AppendHeader("Content-Disposition", string.Format("attachment;filename={0}", fileName));
            HttpContext.Current.Response.TransmitFile(path);
            response.Flush();
            response.End();
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }


E niente ma non mi funziona..scusa in cosa sbaglio? nel link per richiamare Hanlder???
2.198 messaggi dal 30 novembre 2001
Ma prima ti funzionava con PostBackUrl?
Comunque fai in questo modo, dalla pagina che deve chiamare il file metti direttamente il link al file pdf con apertura in una nuova finestra e nel web.config aggiungi questa riga nella sezione:

<system.webServer>
<handlers>

<add name="DownloadFilePdfHandler" verb="*" path="*.pdf" type="DownloadHanlder, App_Code"/>

Quale versione di IIS stai utilizzando?
413 messaggi dal 22 giugno 2007
Si prima mi funzionava con il PostBackUrl, in realtà anche adesso sono che mi dice che non può giustamente credo entrare nella cartella.

chiccosimo ha scritto:

Comunque fai in questo modo, dalla pagina che deve chiamare il file metti direttamente il link al file pdf con apertura in una nuova finestra


Ho messo la parte nel web.config, ma quello che mi hai scritto qui sopra non l'ho capito..

Scusa sono proprio una frana
413 messaggi dal 22 giugno 2007
ma fose non è questo?

il risultato di questo codice
string script = string.Format("window.location.href='{0}DownloadHanlder.ashx?url={1}'", this.RootUrl, fileName);


è:
"window.location.href='http://localhost:3460/DownloadHanlder.ashx?url=Contratto_Licenza.pdf'"

Giusto o sbagliato???

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.