Internet Transfer Control
(Inet) Transferindo arquivos com o VB
1-Introdução
2-Propriedades
, métodos e Eventos
3-Usando
o INET na prática
Não é novidade que a internet cresce dia a
dia . A habilidade para usar documentos e artigos armazenados nos
computadores na grande Web é de fundamental importância nestes
dias. O Visual Basic tem se mostrado uma linguagem versátil com
relação ao desenvolvimento para WEB, e, não poderia faltar em
nos dispor uma ferramenta para acessar arquivos na Internet.
O Visual Basic possui o um controle ActiveX
que torna o acesso a arquivos muito fácil de realizar, estamos
falando do Internet Transfer Control - INET para
os íntimos. Ele permite enviar e recepcionar arquivos e
documentos usando o protocolo FTP ou o protocolo HTTP. Permite
também renomear e deletar arquivos usando os comandos DELETE e
RENAME quando voce se conecta a um host FTP.
Usar o INET é muito simples. Primeiro
definimos as propriedades relacionadas com a conexão a ser feita
com o host: protocolo, username, password, nome do servidor
remoto (remote server name) , etc.Feito isto podemos usar os
métodos do controle para recuperar/restaurar arquivos ou enviar
comandos.
O controle INET é invisível em um
formulário , como o controle Timer , e, toda sua funcionalidade
esta implementada através de seus métodos. Ele suporta
transferência de arquivos no modo sincrono como no assincrono.
Isto permite que o programa espere até que os dados sejam
transferidos ou que voce monitore o progresso da transferência
enquanto realiza outras tarefas.
O controle INET possui 14 propriedades ,
descritas a seguir.
controle INET possui as seguintes
propriedades: Index, Name , Object, Parent e Tag. São as
propriedades padrão e são usadas como em qualquer controle
ActiveX.
Ao estabelecer uma conexão com um servidor
remoto voce precisa enviar o nome do usuário (username) e a
senha (password) . Alguns servidores permitem a conexão com um
usuário anônimo (anonymous) , outros não ; neste caso você
precisa definir as propriedades UserName e Password antes de
estabelecer a conexão.
Ao acessar um servidor FTP anonymous você
pode deixar as propriedades UserName e Password vazias, pois, o
controle INET irá atribuir valores automaticamente para estas
propriedades. Username será definido como "anonymous"
e Password será definida como o e-mail do usuário.
O controle INET possui 5 métodos, descritos a
seguir.
O método Execute permite que você envie
comandos para um servidor FTP ou HTTP. Por exemplo voce pode
enviar o comando DIR para um servidor FTP lhe retornar o
contéudo de um diretório via método Execute. A informação
retornada será armazeanda no buffer do controle INET e você
poderá ler esta informação usando o método GetChunck.
Cada um dos quatros argumentos para o método
execute é opcional, sendo que o argumento URL
define a URL que será aplicada a operação . Por exemplo, ao
utilizar o comando DELETE , a URL deverá conter o nome do
servidor FTP e o caminho do arquivo a ser deletado (
ftp://ftp.teste.com/dir/teste.txt).
O argumento Operation
é a operação ou comando a ser executado. A seguir temos um
lista com as operações válidas . Algumas operações somente
funcionam no protocolo FTP outras somente no protocolo HTTP.
O controle INET possui somente 1 evento:
StateChanged. O evento StateChanged
é acionado sempre que há uma alteração em uma conexão com um
sistema remoto. Sua sintaxe é a seguinte:
object_StateChanged(ByVal State As Integer)
O evento StateChanged fornece
um valor inteiro ( State/Estado) que indica o estado atual da
conexão.Os valores possíveis para os valores desse state/estado
são:
Quando um comando ou operação é enviada a
um servidor remoto (host) usando o método Execute, o evento
SateChanged pode disparar um número de vezes conforme
os passos de requisição e envio forem sendo completados.
Usando
o controle Internet Transfer Control
1-) Transferindo arquivos com o
método OpenURL
Para fazer o download de um arquivo ou documento ( HTTP ou FTP
) usamos o método OpenURL do controle Internet
Transfer Control. Para realizar tal operação usamos somente uma
linha de código , Exemplo:
a-) rtfHTMLDoc = Inet1.OpenURL("http://www.microsoft.com")
b-) txtFTPArquivo =
inet1.OpenURL("ftp://ftp.microsoft.com/teste.txt")
No exemplo a-) estamos abrindo a página em www.microsoft.com e
salvando-a em um controle RichTextBox(rtfHTMLDoc) afim de
preservar a formatação da mesma em b-) estamos recebendo o
arquivo teste.txt em um objeto TextBox ( txtFTPArquivo). Obs:
Inet1 é o nosso objeto Internet Transfer Control.
Para receber arquivos ou documentos e salvá-los em um arquivo
, podemos atribuir o arquivo a uma variável string ,e , então
escrever a string para o arquivo usando os comandos : Open ,
Write e Close. Para receber arquivos binários podemos usar
o seguinte código:
Public Function Download(ArqURL As String, Arqtemp As String) As Boolean
Dim arquivo() As Byte
Open Arqtemp For Binary Access Write As #1
arquivo() = Inet1.OpenURL(ArqURL, icByteArray)
Put #1, , arquivo()
Close #1
MsgBox "O arquivo " & Text2.Text & " foi recebido com sucesso ! ", vbInformation
Download = True
Exit Function
Trata_erro:
MsgBox "Ocorreu um erro durante a transferência ! ", vbCritical
Download = False
End Function
|
Esta função pode ser usada para fazer o download de qualquer
arquivo na internet . Para chamá-la basta passar como
parâmetros o nome do endereço ( URL ) e o nome do arquivo,
como no exemplo a seguir:
lretorno = Download(Text1.Text,
Text2.Text)
Aqui em text1.text e text2.text
são informados respectivamente a URL e o nome do
arquivo (text1 e text2 são os nomes das caixas de texto).
Abaixo temos a figura com o exemplo usado e o controle Inet
já inserido na caixa de ferramentas:
 |
Aqui a chamada da função é feita quando o usuário
clicar no botão de comando |
| Formulário com o controle
Inet |
|
Acessando FTP via VB
Vamos mostrar agora como acessar um servidor FTP. Veja alguns comandos que
você pode usar:
Private Sub Form Load()
inet1.URL = "FTP://ftp.site.com"
inet1.Password = "senha"
inet1.UserName = "seunome"
text1.text = inet1.OpenURL
End Sub
Private Sub cmdMuda_Diretorio_Click()
Inet1.Execute txtURL.text, "CD " & txtRemotePath.text
End Sub
Private Sub cmdExcluir_Click()
Inet1.Execute txtURL.text, "DELETE " & txtRemotePath.text
End Sub
Private Sub cmdDIR_Click()
Inet1.Execute txtURL.Text, "DIR FindThis.txt"
End Sub |
Neste exemplo você deve inserir o controle Inet (chamado aqui Inet1)
no seu formulário , uma caixa de texto e três botões de comando. Cada botão
realiza uma ação: Muda o diretório , Exclui um arquivo , lista o conteúdo de
um diretório.
E..., acabou.!!! Então, até o próximo artigo ...;-)