none
Download de xml RRS feed

  • Pergunta

  • Boa tarde!

    É o seguinte gero um .xml no servido e em seguida quero enviá-lo via download.

    Vi vários tópicos mas não consegui resolver o problema.

    Tentei assim:

                        if (File.Exists(localArqServidor))
                        {
                            //Cria uma variavel do tipo xml
                            XmlDocument xmlDoc = new XmlDocument();
    
                            //Carrega o arquivo xml
                            xmlDoc.Load(localArqServidor);
    
                            Response.Clear();
                            string nomeArquivo;
                            nomeArquivo = localArqServidor.Substring(localArqServidor.LastIndexOf("\\")).Replace("\\", "");
                            Response.Charset = "iso-8859-1";
                            Response.ContentType = "application/octet-stream";
                            Response.AddHeader("content-disposition", "attachment;filename=" + nomeArquivo + ".txt");
                            //Response.Charset = "";
                            Response.Cache.SetCacheability(HttpCacheability.NoCache);
                            //Tipo de arquivo para geração
                            //Response.ContentType = "text/xlm";
                            this.EnableViewState = false;
                            //grava
                            Response.Write(xmlDoc);
                            Response.End();
                        }

    Porém retorna o erro:

    Erro em tempo de execução do Microsoft JScript: Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed.

    Alguma sugestão?


    Ninguém falou que seria fácil!

    segunda-feira, 14 de maio de 2012 17:08

Respostas

  • O problema era o uso de updatepanell com um jquery modal.

    Coloquei a chamada no página comum e funcionou:

    Ficou assim:

    string localArqServidor = Server.MapPath(ConfigurationManager.AppSettings["pasta"].ToString());
    FileInfo arquivo = null;
    //Obtêm os dados do arquivo pois o tamanho é requerido para efetuar o download
    arquivo = new FileInfo(localArqServidor);
    //'envia para o browser
    Response.Clear();
    Response.AddHeader("Content-Disposition", "attachment; filename=meuarquivo");
    Response.AddHeader("Content-Length", arquivo.Length.ToString());
    Response.ContentType = "application/octet-stream";
    Response.WriteFile(localArqServidor);
    Response.End();

    Fonte: http://www.macoratti.net/aspn_dua.htm


    Ninguém falou que seria fácil!


    • Editado jothaz terça-feira, 15 de maio de 2012 04:50
    • Marcado como Resposta Harley Araujo quarta-feira, 16 de maio de 2012 10:25
    terça-feira, 15 de maio de 2012 04:50