VB.NET - Fazendo Download/Upload de arquivos na web


A classe WebClient do namespace System.NET pode ser usada em uma aplicação VB para efetuar download e upload de arquivos na internet. Ela é uma alternativa a classe WebRequest que usamos para mostrar como fazer download via HTTP no artigo a seguir:

A classe WebClient fornece métodos para enviar dados ou receber dados de qualquer recurso identificado pela URI ; seja local , intranet ou internet.

Ela , na verdade , usa a classe WebRequest para fornecer acesso aos recursos da internet. Instâncias da classe WebClient podem acessar dados com qualquer WebRequest registrados com o método WebRequest.RegisterPrefix.

A plataforma .NET Framework suporta por padrão URIs que começam com : http , https e file:schema

A classe WebClient fornece quatro métodos para fazer o envio de arquivos para um recurso:

A classe WebClient fornece três métodos para fazer o download de arquivos a partir de um recurso:

Nota: Para saber mais sobre os métodos clique no link para ir para o site da MSDN

Uma instância da classe WebClient não envia um cabeçalho HTTP opcional por padrão. Se sua requisição requerer um cabeçalho opcional , você precisa incluir o cabeçalho na coleção Headers.

Vamos a um exemplo prático.

Inicie um novo projeto no VS.NET e no formulário padrão insira duas caixas de texto e dois botões de comando conforme figura abaixo:

Referencie o namespace no inicio do projeto:

' Utilização da classe WebClient para fazer download de um arquivo.
Imports System.Net

Recebendo Arquivos

Agora insira o seguinte código no evento click do botão - Procurar . Ele apenas abre uma caixa de diálogo Salvar para que seja selecionado um arquivo e o seu tipo para o qual o arquivo da web será salvo.

Private Sub btnProcura_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnProcura.Click
        'abre a janela de dialogo salvar arquivo
        Dim salvarDLG As SaveFileDialog = New SaveFileDialog
        salvarDLG.Title = "Selecione o arquivo para salvar o download."
        DialogResult = salvarDLG.ShowDialog
        'Se o usuario clicou no botao OK entao continau
        If DialogResult = DialogResult.OK Then
            txtPath.Text = salvarDLG.FileName
        End If
        'limpa a memoria
        salvarDLG.Dispose()
    End Sub

O código abaixo efetua o download do arquivo indicado na URI da caixa de texto usando o método DownloadFile da classe WebClient:

Private Sub btnDownload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDownload.Click
        'criando uma instância da classe WebClient
        Dim cliente As WebClient = New WebClient
        'usando o método DownloadFile para efetuar o download
        Try
            cliente.DownloadFile(txtURL.Text, txtPath.Text)
            MsgBox("Arquivo recebido com sucesso.", MsgBoxStyle.Information)
        Catch ex As Exception
            MsgBox(ex.Message & " - " & ex.Source)
        End Try
        'limpa a memoria
        cliente.Dispose()
    End Sub

Enviando Arquivos

Para efetuar o Envio de arquivos basta usar o metodo UploadFile da classe WebClient. Abaixo o exemplo para Envio de arquivos:

Abaixo temos o código para o evento Click de cada botão de comando - Enviar. Ele apenas usa o método UploadFile para o arquivo selecionado e envia para a URI indicada :

Private Sub btnEnvia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnvia.Click
        Dim cliente As New WebClient
        Dim resposta As Byte()
        ' Envia o arquivo para a URL usando o método POST do protocolo HTTP 1.0
        Try
            resposta = cliente.UploadFile(txtURL.Text, "POST", txtArquivo.Text)
            MsgBox("Arquivo enviado com sucesso.", MsgBoxStyle.Information)
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical)
        End Try
        cliente.Dispose()
    End Sub   

O código do evento Procurar abre uma janela de diálogo Abrir Arquivo e permite o usuário selecionar um arquivo para enviar:

Private Sub btnProcura_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnProcura.Click
        'abre a janela de dialogo abrir arquivo
        Dim abrirDLG As OpenFileDialog = New OpenFileDialog
        abrirDLG.Title = "Selecione o arquivo que deseja enviar."
        DialogResult = abrirDLG.ShowDialog
        'Se o usuario clicou no botao OK entao continua
        If DialogResult = DialogResult.OK Then
            txtArquivo.Text = abrirDLG.FileName
        End If
        'limpa a memoria
        abrirDLG.Dispose()
    End Sub

Simples , direto e objetivo...

Eu sei , é apenas VB.NET , mas eu gosto...

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti