Subida de fichero por FTP

Post Reply
juanjogascem
Posts: 102
Joined: Wed May 31, 2006 8:49 am
Location: España

Subida de fichero por FTP

Post 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
User avatar
acuellar
Posts: 1645
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Subida de fichero por FTP

Post 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()
 
Saludos,

Adhemar C.
juanjogascem
Posts: 102
Joined: Wed May 31, 2006 8:49 am
Location: España

Re: Subida de fichero por FTP

Post by juanjogascem »

Perfecto.
SI, funcionó perfectamente.

Muchas gracias!!!!
juanjogascem
Posts: 102
Joined: Wed May 31, 2006 8:49 am
Location: España

Re: Subida de fichero por FTP

Post 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
User avatar
acuellar
Posts: 1645
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Subida de fichero por FTP

Post by acuellar »

Usar:

Code: Select all | Expand

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

Adhemar C.
juanjogascem
Posts: 102
Joined: Wed May 31, 2006 8:49 am
Location: España

Re: Subida de fichero por FTP

Post 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
User avatar
acuellar
Posts: 1645
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Subida de fichero por FTP

Post 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]
 
Saludos,

Adhemar C.
juanjogascem
Posts: 102
Joined: Wed May 31, 2006 8:49 am
Location: España

Re: Subida de fichero por FTP

Post 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
User avatar
acuellar
Posts: 1645
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Subida de fichero por FTP

Post by acuellar »

Quizás la ruta de la carpeta images no es la correcta

debe ponerla completa
Saludos,

Adhemar C.
Post Reply