Page 1 of 1

Subida de fichero por FTP

Posted: 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

      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

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

Intenta con éste código:

Code: Select all | Expand

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

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

Muchas gracias!!!!

Re: Subida de fichero por FTP

Posted: 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

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

Code: Select all | Expand

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

Re: Subida de fichero por FTP

Posted: 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

Posted: Wed Nov 23, 2022 12:02 pm
by acuellar
Usar

Code: Select all | Expand

aFiles:=oFtp:Directory("images\*.*")
 
 
Devuelve 4 Columnas
NOMBRE TAMAÑO FECHA HORA

Code: Select all | Expand

NOMBRE:= aFiles[1,1]
 

Re: Subida de fichero por FTP

Posted: 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 _ me devuelve 1 elemento con aFilesBo[1,1] esta vacio.

Ya no se que hacer

Re: Subida de fichero por FTP

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

debe ponerla completa