Título: descargar ftp Publicado por: sp26 en 6 Diciembre 2006, 18:41 pm Quisiera saber de una form que cree un Archivo txt (indicando los datos en el codigo mismo) y lo suba a un servidor FTP de manera silenciosa. Tambien que descargue un archivo ftp
Me habian dicho que con Winsock, pero estuve redondeando y al final no encontre como :-( Si hay otra manera de hacerlo seria mejor tambien ;). Título: Re: descargar ftp Publicado por: jrhomer en 7 Diciembre 2006, 09:15 am Espero que esto te sirva. Cuentanos a ver como te ha ido al probarlo.
Private Declare Function GetShortPathName Lib "kernel32" Alias _ "GetShortPathNameA" (ByVal lpszLongPath As String, _ ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _ (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, _ ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''' FTP '''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'Esta API es para que de una ruta WIndows, me devuelva una ruta MSDOS, 'ya que el comando FTP del prompt no reconoce rutas largas Public Function RutaDos(strFileName As String) As String Dim lngRes As Long, strPath As String strPath = String$(165, 0) lngRes = GetShortPathName(strFileName, strPath, 164) RutaDos = Left$(strPath, lngRes) End Function '''''''''''''''''''''''''''''''''' ''''''' subir fichero '''''''''''' '''''''''''''''''''''''''''''''''' Function PutFichero() On Error GoTo ERROR Dim Retval 'escribimos el fichero ftp.txt que hara toda la labor If Len(Dir("C:\ftp.txt")) <> 0 Then Kill "C:\ftp.txt" Dim StrFtp As String Dim StrUsuario As String Dim StrPassword As String Dim strCarpetaRemota As String Dim StrRutalocalFichero As String StrFtp = "ftp.sitio.com" StrUsuario = "sitio.com" StrPassword = "contraseña" strCarpetaRemota = "html/BD/" StrRutalocalFichero = "BD.zip" ' subir al servidor NumeroArchivo = FreeFile Open "C:\ftp.txt" For Append As #NumeroArchivo Print #NumeroArchivo, "Open " & StrFtp Print #NumeroArchivo, StrUsuario Print #NumeroArchivo, StrPassword Print #NumeroArchivo, "cd " & strCarpetaRemota Print #NumeroArchivo, "binary" Print #NumeroArchivo, "put " & RutaDos(StrRutalocalFichero) Print #NumeroArchivo, "bye" Close #NumeroArchivo DoEvents ' Retval = Shell("ftp -s:C:\ftp.txt", vbNormalFocus) Call ExecuteAndWait("ftp -s:C:\ftp.txt") Exit Function ERROR: End Function '''''''''''''''''''''''''''''''''' ''''''' bajar fichero '''''''''''' '''''''''''''''''''''''''''''''''' Function GetFichero() On Error GoTo ERROR Dim Retval Dim StrFtp As String Dim StrUsuario As String Dim StrPassword As String Dim strCarpetaRemota As String Dim StrFicheroRemoto As String StrFtp = "ftp.sitio.com" StrUsuario = "sitio.com" StrPassword = "contraseña" strCarpetaRemota = "html/BD/" StrFicheroRemoto = "BD.ZIP" ' bajar el fichero NumeroArchivo = FreeFile Open "C:\ftp.txt" For Append As #NumeroArchivo Print #NumeroArchivo, "Open " & StrFtp Print #NumeroArchivo, StrUsuario Print #NumeroArchivo, StrPassword Print #NumeroArchivo, "cd " & strCarpetaRemota Print #NumeroArchivo, "binary" Print #NumeroArchivo, "get " & StrFicheroRemoto & " " & _ RutaDos(Directorio) & "BD.zip" Print #NumeroArchivo, "bye" Close #NumeroArchivo DoEvents ' Retval = Shell("ftp -s:C:\ftp.txt", vbNormalFocus) Call ExecuteAndWait("ftp -s:C:\ftp.txt") If Len(Dir("C:\ftp.txt")) <> 0 Then Kill "C:\ftp.txt" ' cambiar nombre, para tener una cópia de seguridad NumeroArchivo = FreeFile Open "C:\ftp.txt" For Append As #NumeroArchivo Print #NumeroArchivo, "Open " & StrFtp Print #NumeroArchivo, StrUsuario Print #NumeroArchivo, StrPassword Print #NumeroArchivo, "cd " & strCarpetaRemota Print #NumeroArchivo, "rename " & StrFicheroRemoto & " " & _ "BD_" & FECHA & ".zip" Print #NumeroArchivo, "bye" Close #NumeroArchivo DoEvents Call ExecuteAndWait("ftp -s:C:\ftp.txt") Exit Function ERROR: End Function Título: Re: descargar ftp Publicado por: rixi15 en 7 Diciembre 2006, 11:58 am y en el form_load k se pone¿?
Título: Re: descargar ftp Publicado por: Castord en 7 Diciembre 2006, 13:32 pm WTF!
ese codigo no hace nada interesante... Título: Re: descargar ftp Publicado por: sp26 en 7 Diciembre 2006, 21:06 pm ¿Porque no hace nada interesante? Tienes algun codigo mejor? si lo tienes, seria bueno que lo compartas con nosotros ;)
Gracias Jrhomer, probare tu codigo ;). aunque no entiendo en la parte que dices:. StrRutalocalFichero = "BD.zip" Tambien no dejaste claro como crear un archivo *.txt, de igual manera muchas gracias, lo probare . Título: Re: descargar ftp Publicado por: rixi15 en 7 Diciembre 2006, 21:52 pm ami no me funciona ay k ponmer algo en el form load¿?
Título: Re: descargar ftp Publicado por: sp26 en 8 Diciembre 2006, 23:22 pm haber, tampoco me funciona.
intentare cis=3 Título: Re: descargar ftp Publicado por: sp26 en 10 Diciembre 2006, 02:47 am :huh:
Título: Re: descargar ftp Publicado por: jrhomer en 12 Diciembre 2006, 16:32 pm El código fuinciona perfectamente, lo tengo funcionando en aplicaciones y no hay problema.
Para descargar un archivo llama a: Código: GetFichero Para subir una archivo al servidor FTP llama a: Código: PutFichero() Las funciones son personales.... no son para que las copies y ya tenga que funcionar, mirar a ver que modificaciones teneis que .hacer, pero ese código funciona perfectamente. Citar aunque no entiendo en la parte que dices:. BD.zip es el archivo que subo y bajo del servidor FTP y se encuentra en la ruta que indico .... imagina que pone C:\archivo.zip. En MI caso el archivo BD.zip se encuentra en el mismo directorio donde ejecuto la aplicación, es por eso que no hay más ruta.StrRutalocalFichero = "BD.zip" |