none
Download de arquivos em um diretório Web RRS feed

  • Pergunta

  • Boa tarde a todos,

    Estou listando todos os arquivos de um diretorio dentro do meu projeto,

    Para cada arquivo listado estou criando um link para download mais não está funcionando (rs), alguém por favor poderia me dar um help pois deve ser uma besteira e eu não estou conseguindo achar ou não estou fazendo da melhor maneira!

    Segue meu código.

                    DirectoryInfo diretorio = new DirectoryInfo(Server.MapPath("/Arquivos"));
                    FileInfo[] arquivos = diretorio.GetFiles();
    
    
                    foreach (FileInfo linha in arquivos)
                    {
                        IntegracaoInfo item = new IntegracaoInfo();
                        item.nomearquivos = Convert.ToString(linha.Name);
                        item.diretorio = Convert.ToString(linha.DirectoryName);
    
                        TestResults.InnerHtml += "<a href='"+item.diretorio+""+"\\"+""+item.nomearquivos+"'>"+item.nomearquivos+"</a><br/>";
                       
                    }
    Desde já muito obrigado!


    quarta-feira, 7 de dezembro de 2016 15:35

Respostas

  • A propriedade DirectoryName retorna o caminho completo do diretório, mas o link deve conter links web relativos.

    Troque a linha

    TestResults.InnerHtml += "<a href='"+item.diretorio+""+"\\"+""+item.nomearquivos+"'>"+item.nomearquivos+"</a><br/>";

    por

    TestResults.InnerHtml += "<a href='/Arquivos/"+item.nomearquivos+"'>"+item.nomearquivos+"</a><br/>";


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".


    quarta-feira, 7 de dezembro de 2016 17:10
  • Pelo que pesquisei, no Chrome, Firefox e Opera parece ser possível acrescentar um atributo no link para forçar o download. Ex:

    TestResults.InnerHtml += "<a href='/Arquivos/"+item.nomearquivos+"' download>"+item.nomearquivos+"</a><br/>";

    Para abrir em outra janela basta acrescentar o atributo target="_blank".


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    • Marcado como Resposta Marcio Camargo quarta-feira, 7 de dezembro de 2016 18:05
    quarta-feira, 7 de dezembro de 2016 17:54

Todas as Respostas

  • A propriedade DirectoryName retorna o caminho completo do diretório, mas o link deve conter links web relativos.

    Troque a linha

    TestResults.InnerHtml += "<a href='"+item.diretorio+""+"\\"+""+item.nomearquivos+"'>"+item.nomearquivos+"</a><br/>";

    por

    TestResults.InnerHtml += "<a href='/Arquivos/"+item.nomearquivos+"'>"+item.nomearquivos+"</a><br/>";


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".


    quarta-feira, 7 de dezembro de 2016 17:10
  • Boa tarde Juliano,

    Primeiramente obrigado pelo retorno!

    Você saberia me informar ao invés de abrir o arquivo no navegador fazer o download do arquivo!

    Caso não de para fazer o download abrir em uma nova guia no navegador

    Desde já muito obrigado!

    quarta-feira, 7 de dezembro de 2016 17:43
  • Pelo que pesquisei, no Chrome, Firefox e Opera parece ser possível acrescentar um atributo no link para forçar o download. Ex:

    TestResults.InnerHtml += "<a href='/Arquivos/"+item.nomearquivos+"' download>"+item.nomearquivos+"</a><br/>";

    Para abrir em outra janela basta acrescentar o atributo target="_blank".


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    • Marcado como Resposta Marcio Camargo quarta-feira, 7 de dezembro de 2016 18:05
    quarta-feira, 7 de dezembro de 2016 17:54