none
Obter nome do arquivo a partir de um endereço de download RRS feed

  • Pergunta

  • Eae pessoa, queria que salva-se um download com o nome que o servidor envia..

    Por ex, o nome do arquivo no servidor é 11 quero que salve 11, há algum jeito?

    Eu baixo usando FileDownloadAsync.

    Vlw

    sexta-feira, 24 de outubro de 2014 00:16

Respostas

  • Teste com esse código:

    Dim wc As New WebClient()
    Dim data = wc.DownloadData("www.seusiteaqui.com.br\getfile?id=123")
    Dim fileName As String = ""

    ' Tenta extrair o nome do arquivo a partir do cabeçalho Content-Disposition
    If Not [String].IsNullOrEmpty(wc.ResponseHeaders("Content-Disposition")) Then
    'Obtem o nome do arquivo
    fileName = wc.ResponseHeaders("Content-Disposition").Substring(wc.ResponseHeaders("Content-Disposition").IndexOf("filename=") + 10).Replace("""", "")
    End If
    Se te ajudou marca como resposta

    • Sugerido como Resposta Mr. GMSOFT sexta-feira, 24 de outubro de 2014 13:02
    • Editado Mr. GMSOFT sexta-feira, 24 de outubro de 2014 13:13
    • Marcado como Resposta Ricardo Barbosa Cortes terça-feira, 28 de outubro de 2014 17:11
    sexta-feira, 24 de outubro de 2014 13:02

Todas as Respostas

  • Você pode obter o nome pela URI, certo?

    private void btnDownload_Click(object sender, EventArgs e)
    {
      WebClient webClient = new WebClient();
      webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
      webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
      webClient.DownloadFileAsync(new Uri("http://mysite.com/myfile.txt"), @"c:\myfile.txt");
    }

    • Sugerido como Resposta Deric Ferreira sexta-feira, 24 de outubro de 2014 00:37
    sexta-feira, 24 de outubro de 2014 00:37
  • Conseguiu solucionar o problema?


    Aqui tem os dois métodos para baixar:

    http://oscarcasagrande.wordpress.com/2012/04/15/201/
    • Editado Mr. GMSOFT segunda-feira, 27 de outubro de 2014 20:10
    sexta-feira, 24 de outubro de 2014 11:21
  • Encontrei uma forma:

    http://stackoverflow.com/questions/4096929/get-filename-while-downloading-it

    • Sugerido como Resposta Deric Ferreira sexta-feira, 24 de outubro de 2014 12:40
    sexta-feira, 24 de outubro de 2014 12:40
  • Teste com esse código:

    Dim wc As New WebClient()
    Dim data = wc.DownloadData("www.seusiteaqui.com.br\getfile?id=123")
    Dim fileName As String = ""

    ' Tenta extrair o nome do arquivo a partir do cabeçalho Content-Disposition
    If Not [String].IsNullOrEmpty(wc.ResponseHeaders("Content-Disposition")) Then
    'Obtem o nome do arquivo
    fileName = wc.ResponseHeaders("Content-Disposition").Substring(wc.ResponseHeaders("Content-Disposition").IndexOf("filename=") + 10).Replace("""", "")
    End If
    Se te ajudou marca como resposta

    • Sugerido como Resposta Mr. GMSOFT sexta-feira, 24 de outubro de 2014 13:02
    • Editado Mr. GMSOFT sexta-feira, 24 de outubro de 2014 13:13
    • Marcado como Resposta Ricardo Barbosa Cortes terça-feira, 28 de outubro de 2014 17:11
    sexta-feira, 24 de outubro de 2014 13:02
  • Encontrei uma forma:

    http://stackoverflow.com/questions/Con4096929/get-filename-while-downloading-it

    Conforme eu citei no exemplo acima, o header Content-Disposition contém esta informação:

    using (WebClient client = new WebClient()){
        client.OpenRead(url);
    
        string header_contentDisposition = client.ResponseHeaders["content-disposition"];
        string filename = new ContentDisposition(header_contentDisposition).FileName;
    
     
    }


    • Sugerido como Resposta Deric Ferreira sexta-feira, 24 de outubro de 2014 13:10
    sexta-feira, 24 de outubro de 2014 13:10
  • Conseguiu solucionar a sua pergunta??


    Caso afirmativo, marque a resposta para que outros usuários possam utilizar como base para outros problemas semelhantes
    segunda-feira, 27 de outubro de 2014 20:11