none
ClientScript com Download RRS feed

  • Pergunta

  • Bom dia Srs,

    Meu cenário: tenho um método que gera vários arquivos pdf a partir de de arquivos word. Como o processo é um pouco demorado, coloquei uma gif de aguarde na tela. Preciso criar uma forma de parar esta gif antes ou depois do download dos arquivos, porém não estou conseguindo. Acontece que o método ClientScript pode ser usado pra parar a execução da gif, porém esse método da um response na página assim como o download, aí mora o problema. O servidor faz o download mais não para o gif, alguém pode ajudar?

    quarta-feira, 25 de janeiro de 2017 13:35

Respostas

  • Boa tarde pessoal, bem, acabei encontrando uma solução junto com um colega.

    Criei um iframe, passe como parâmetro o nome do arquivo e no codebehind eu coloquei a rotina de download. Com isso não preciso do ClientScript pra fechar a gif.

    Abaixo um exemplo do código pra quem precisar:

     protected void Page_Load(object sender, EventArgs e)
            {
                if (Request.QueryString["DownLoadFileName"] != null)
                {
                    DownLoadFile(Request.QueryString["DownLoadFileName"].ToString());
                }
            }
            public void DownLoadFile(string FileName)
            {
                FileInfo file = new FileInfo(FileName);
    
                if (FileName.Exists)
                {
                    Response.ClearContent();
                    Response.ClearHeaders();
    
                    Response.AddHeader("content-disposition", "attachment;filename=" + file.Name);
                    Response.ContentType = "application/octet-stream";
                    Response.WriteFile(file.FullName);
                    Response.End();
                }
            }

    E no evento Click do botão:

     this.iframe.Attributes.Add("src", "DownLoadFilePage.aspx?DownLoadFileName=NomeDoArquivo");

    • Marcado como Resposta Farias-BH quarta-feira, 25 de janeiro de 2017 17:14
    quarta-feira, 25 de janeiro de 2017 17:14