Programación General > Visual Basic 6.0 e inferiores

 Ftp

<< < (2/2)

Brroz:
Kaixo.

Usando un control Inet supongo que se podría hacer utilizando el comando FTP 'dir' y/o los comandos 'ls' o 'mls' para mostrar el contenido de uno o varios directorios respectivamente. Para recuperar esta información, fíjate en lo que dice la ayuda del control.


--- Citar ---En este ejemplo se utiliza el método GetChunk en el evento StateChanged para obtener un bloque de datos. Se emplea una instrucción Select Case para determinar lo que se debe hacer en todos los estados posibles. En el ejemplo se supone que en el formulario hay un control TextBox llamado txtData.

Private Sub Inet1_StateChanged(ByVal State As Integer)
   ' Recupera la respuesta del servidor con el método
   ' GetChunk cuando State = 12. En este ejemplo se
   ' supone que los datos son texto.

   Select Case State
   ' ... No se muestran los demás casos.

   Case icResponseReceived ' 12
      Dim vtData As Variant ' Variable de datos.
      Dim strData As String: strData = ""
      Dim bDone As Boolean: bDone = False

      ' Obtiene el primer bloque.
      vtData = Inet1.GetChunk(1024, icString)
      DoEvents
      Do While Not bDone
         strData = strData & vtData
         DoEvents
         ' Obtiene el bloque siguiente.
         vtData = Inet1.GetChunk(1024, icString)
         If Len(vtData) = 0 Then
            bDone = True
         End If
      Loop

      txtData.Text = strData
   End Select
   
End Sub

--- Fin de la cita ---

A ver si esto te sirve.

Por cierto, este control también permite definir el puerto a usar (joder, parece que esté haciendo propaganda del control... que no, hombre, que no, sólo para que lo tengas en cuenta).

Agur

Sagutxo:
Salu2.
He probado tu control Brroz. pero me da un error.


--- Código: Text ---ValStr = Dir1.Path & &#34;&#092;&#34; & File1.FileNameInet1.UserName = &#34;red&#34;Inet1.Password = &#34;red1&#34;Inet1.RemotePort = 21 Inet1.Execute &#34;FTP://AquiHayUnaIP&#34;, &#34;PUT &#34; & File1.FileName & &#34; &#34; & ValStr 
No se puede conectar con el host remoto. Este error me da. y te aseguro que el ftp funciona ya que lo uso amenudo.

   Otra duda, no he encontrado la forma de pasar los datos como binary :). ¿Lo hará automaticamente como binary?

Muchas gracias.

Brroz:
Kaixo.

No sé si a estas alturas te servirá de mucho, pero ...

El error tampoco sé a qué puede deberse, pero tal vez tenga algo que ver con esta nota:

--- Citar ---Nota   Cuando utilice el método OpenURL, establezca la propiedad URL antes que las propiedades Password y UserName. Si establece la propiedad URL en último lugar, las propiedades UserName y Password estarán establecidas a "".

--- Fin de la cita ---
Al no estar establecida previamente una url, puede que con el usuario y la contraseña pase algo de esto...

prueba así a ver:

--- Código: Text --- INet1.URL=&#34;FTP://AquiHayUnaIP&#34;INet1.UserName = &#34;red&#34;Inet1.Password = &#34;red1&#34;Inet1.RemotePort = 21INet1.OpenURLINet1.Execute &#34;Type Bynari&#34;INet1.Execute &#34;PUT archivo1 archivo2&#34;  
Sobre lo del tipo binario... en el código anterior puedes encontrar la solución: ejecuta el comando Type bynari.

Fíjate También en este ejemplo de la ayuda:

--- Código: Text --- Dim b() As ByteDim strURL As String' Establece strURL a una dirección válida.strURL = &#34;FTP://ftp.GreatSite.com/China.exe&#34;b() = Inet1.OpenURL(strURL, icByteArray) Open &#34;C:&#092;Temp&#092;China.exe&#34; For Binary Access _Write As #1Put #1, , b()Close #1  
Espero que esto te sirva de algo.

Agur.

Sagutxo:
Salu2. ya siento contestarte tan tarde pero he tenido problemas de salud que me han inpedido hacerlo.

Sigue sin funcinar, y no me devuelve ningun error así que no te puedo mostrar nada mas que el codigo


--- Código: Text --- Inet1.OpenURL = &#34;ftp://AKI.VA.UNA.IP&#34; ' Ip 100% fiableInet1.UserName = &#34;red&#34;Inet1.Password = &#34;red1&#34;Inet1.RemotePort = 21Inet1.Execute &#34;PUT &#34; & File1.FileName & &#34; &#34; & ValStr  
No se, supongo que no te sirve de mucho, pero es que ya no se que mas poner :(.
Gracias. :smartass:

Brroz:
Kaixo Sagutxo.

Pos no sé qué puede ocurrir... pero puedes probar supervisando el evento del control StateChanged e ir depurando lo que ocurre a través del parámetro estado.


--- Citar ---Los valores de estado son:

Constante Valor Descripción
icNone 0 No hay estado del que informar.
icHostResolvingHost 1 El control está buscando la dirección IP del host especificado.
icHostResolved 2 El control encontró la dirección IP del host especificado.
icConnecting 3 El control está conectando con el equipo host.
icConnected 4 El control conectó correctamente con el equipo host.
icRequesting 5 El control está enviando una solicitud al equipo host.
icRequestSent 6 El control envió correctamente la solicitud.
icReceivingResponse 7 El control está recibiendo una respuesta del equipo host.
icResponseReceived 8 El control recibió correctamente una respuesta del equipo host.
icDisconnecting 9 El control se está desconectando del equipo host.
icDisconnected 10 El control se desconectó correctamente del equipo host.
icError 11 Se produjo un error en la comunicación con el equipo host.
icResponseCompleted 12 La solicitud se completó y se recibieron todos los datos.

--- Fin de la cita ---

Suerte.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa