Page 1 of 1

Subida de fichero por FTP

PostPosted: Thu Nov 17, 2022 11:11 am
by juanjogascem
Muy buenas, estoy intentando subir un fichero a un sitio FTP.
La conexion la realiza correctamente.
Crea el fichero
Pero lo deja con 0 bytes.
No me da ningún tipo de error.
Alguien sabe porque puede ser?


Este es el código que uso

Code: Select all  Expand view

      EXP_ART->( dbGotop() )
      oBrw:refresh()

      // Subo el Fichero
      oInternet := TInternet():New()
      oFTP := TFTP():New( Alltrim(cServFtp), oInternet, Alltrim(cUserFtp),Alltrim(cPassFtp), lPASSIVE_MODE )
      If !Empty( oFTP:hFTP )
        oFTP:SetCurrentDirectory( "/" )
        oFTP:DeleteFile( "subida.xml" )
        hSource = FOpen( "..\INTER\subida.xml" )
        oFile = TFtpFile():New( "subida.xml", oFTP )
        oFile:OpenWrite()
        FSeek( hSource, 0, 0 )
        SysRefresh()
        while ( nBytes := FRead( hSource, @cBuffer, nBufSize ) ) > 0
          oFile:Write( SubStr( cBuffer, 1, nBytes ) )
          SysRefresh()
        end
        FClose( hSource )
        oFile:End()
        oInternet:End()
        MsgInfo( "Articulos exportados CORRECTAMENTE", "Información" )
      endif
*      msgstop("subido")
 
*      ferase( "..\INTER\subida.xml" )

 


Fwh ver. 22.03

Re: Subida de fichero por FTP

PostPosted: Fri Nov 18, 2022 11:41 am
by acuellar
juanjogascem

Intenta con éste código:

Code: Select all  Expand view

FtpSubeBases("ALMACEN\DATA","190.171.250.80","usuario","password")
....

Function FtpSubeBases(cFtpDir,cIPFtpSite,FTPUser,FTPPass)
   oCon:=Turl():New("ftp://"+FTPUser+":"+FTPPass+"@"+cIPftpsite)
   oFTP:=TIpClientFtp():New(oCon, .f.)
   oFTP:open()
   oFtp:UploadFile("C:\SISTEMAS\ALMACEN\DATA\ITEMS.DBF",cFtpDir+"ITEMS.DBF")
   oFtp:close()
 

Re: Subida de fichero por FTP

PostPosted: Sat Nov 19, 2022 4:35 pm
by juanjogascem
Perfecto.
SI, funcionó perfectamente.

Muchas gracias!!!!

Re: Subida de fichero por FTP

PostPosted: Tue Nov 22, 2022 11:32 am
by juanjogascem
Buenas de nuevo.

Ahora me estoy pegando con la instruccion oFtp:directory( "/Images") y no hay manera de que me devuelve los ficheros que existen.
Con la nueva clase del ejemplo anterior sugerido no existe esa propiedad y no encuentro informacion al respecto

Comp podria obter los ficheros de una carpeta FTP?

Un saludo

Re: Subida de fichero por FTP

PostPosted: Tue Nov 22, 2022 8:34 pm
by acuellar
Usar:

Code: Select all  Expand view

oFtp:DownloadFile(cDirLocal+cFile,cFtpDir+cFile)
 

Re: Subida de fichero por FTP

PostPosted: Tue Nov 22, 2022 9:22 pm
by juanjogascem
Con obtener me refería a leer los ficheros que existen en una carpeta para poder comparar con los ficheros que existen en la carpeta local y borrar los que no necesito.
Saludos

Re: Subida de fichero por FTP

PostPosted: Wed Nov 23, 2022 12:02 pm
by acuellar
Usar
Code: Select all  Expand view

aFiles:=oFtp:Directory("images\*.*")
 
 

Devuelve 4 Columnas
NOMBRE TAMAÑO FECHA HORA
Code: Select all  Expand view

NOMBRE:= aFiles[1,1]
 

Re: Subida de fichero por FTP

PostPosted: Wed Nov 23, 2022 4:39 pm
by juanjogascem
Buenas
He probado de todas las formas
oFtp:Directory( "/images/*.*" )
oFtp:Directory( "images/*.*" )
oFtp:Directory( "/images/ )

oFTP:SetCurrentDirectory( "/images" )
aFilesBo := oFTP:Directory()

En todos los casos me devuelve 1 elemento con aFilesBo[1,1] esta vacio.

Ya no se que hacer

Re: Subida de fichero por FTP

PostPosted: Wed Nov 23, 2022 4:55 pm
by acuellar
Quizás la ruta de la carpeta images no es la correcta

debe ponerla completa