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:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#