FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour no envia el archivo, que hago mal???
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
no envia el archivo, que hago mal???
Posted: Wed Apr 28, 2021 10:49 PM
A ver gente, porque ya probe 10 ejemplos. No se que estaoy haciendo mal, hay mucho ejemplos, los pruebo y no me estan funcionando.
necesito enviar un PDF al servidor de FTP

Code (fw): Select all Collapse
FUNCTION cinco()

   LOCAL oInternet := TInternet():New()
   LOCAL oFTP      := TFTP():New( "ftp.ser.com", oInternet, "rcg@iogustavo.com", "pasword" )
   LOCAL cFile := "prueba.pdf"
   LOCAL hSource
   LOCAL nBytes
   LOCAL lEnd := .F.
   LOCAL nBufSize := 2000
   LOCAL cBuffer := Space( nBufSize )

   hSource := FOpen( "uno.pdf" )

   IF ! Empty( oFTP:hFTP )
      oFile := TFTPFile():new( cFile, oFTP )
      oFile:OpenWrite()
      FSeek( hSource, 0, 0 )

      WHILE ( nBytes := FRead( hSource, @cBuffer, nBufSize ) ) > 0 .and. ! lEnd
         oFile:write( SubStr( cBuffer, 1, nBytes ) )
      END

   ELSE
      ? "no se conecto"
   ENDIF

   FClose( hSource )
   oFile:END()

   RETURN ( NIL )


el archivo prueba.pdf lo crea en el FTP pero con 0 bytes, y no se como hacer para DEBUGEAR el comando para que me diga que es lo que hace.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: no envia el archivo, que hago mal???
Posted: Thu Apr 29, 2021 11:34 AM
Hola Gustavo:
Te paso un ejemplo que me está funcionando.
Code (fw): Select all Collapse
IF !ConectaServerFTP("miservidorftp","miusuario","mipassword",@oFtp)
     MsgStop("No pudo subir archivo")
ENDIF 
SubeArchivoFtp(cArchivoOrigen,"carpetaftp/archivoDestino.pdf",oFtp)

*****************************************
*** Conectar al servidor FTP
FUNCTION ConectaServerFTP(cNomSer,cNomUsr,cClaUsr,oFtp)
LOCAL cServer, cUser, cPassword, oUrl, cUrl
cServer := cNomSer //change ftpserver to the real name or ip of your ftp server
cUser := cNomUsr // change ftpuser to an valid user on ftpserer
cPassword := cClaUsr // change ftppass to an valid password for ftpuser
cUrl := "ftp://" + cUser + ":" + cPassword + "@" + cServer
cUser:= strtran(cUser,"@","&at;")
oUrl := tUrl():New( cUrl )
IF At( "@", cUser ) > 0
   oUrl:cUserID := strtran(cUser,"&at;","@")
   oUrl:cPassword := cPassword
ENDIF
oFTP := tIPClientFtp():New( oUrl, .T. )
oFTP:nConnTimeout := 20000
oFTP:bUsePasv := .T.
oFtp:bTrace := {|| .t.}
oFTP:Open( )
IF oFtp <> NIL
   RETURN .T.
ENDIF
RETURN .F.

FUNCTION SubeArchivoFtp(cFileOri,cFileDes,oFtp)
oFtp:Dele( cFileDes )
oFtp:UpLoadFile( cFileOri, cFileDes )
RETURN .T.


Estas son las librerias de Harbour y de Borland que incluyo
Code (fw): Select all Collapse
echo %hdir%\lib\hbwin.lib + >> b32.bc
echo %hdir%\lib\hbrtl.lib + >> b32.bc
echo %hdir%\lib\xhb.lib + >> b32.bc
echo %hdir%\lib\hbvm.lib + >> b32.bc
echo %hdir%\lib\gtgui.lib + >> b32.bc
echo %hdir%\lib\gtstd.lib + >> b32.bc
echo %hdir%\lib\hblang.lib + >> b32.bc
echo %hdir%\lib\hbmacro.lib + >> b32.bc
echo %hdir%\lib\hbrdd.lib + >> b32.bc
echo %hdir%\lib\rddntx.lib + >> b32.bc
echo %hdir%\lib\rddcdx.lib + >> b32.bc
echo %hdir%\lib\rddfpt.lib + >> b32.bc
echo %hdir%\lib\hbsix.lib + >> b32.bc
echo %hdir%\lib\hbdebug.lib + >> b32.bc
echo %hdir%\lib\hbcommon.lib + >> b32.bc
echo %hdir%\lib\hbpp.lib + >> b32.bc
echo %hdir%\lib\hbusrrdd.lib + >> b32.bc
echo %hdir%\lib\hbwin.lib + >> b32.bc
echo %hdir%\lib\hbcplr.lib + >> b32.bc
echo %hdir%\lib\hbct.lib + >> b32.bc
echo %hdir%\lib\hbcpage.lib + >> b32.bc
echo %hdir%\lib\hbhsx.lib + >> b32.bc
echo %hdir%\lib\hbmisc.lib + >> b32.bc
echo %hdir%\lib\hbmzip.lib + >> b32.bc
echo %hdir%\lib\hbnf.lib + >> b32.bc
echo %hdir%\lib\hbpcre.lib + >> b32.bc
echo %hdir%\lib\hbtip.lib + >> b32.bc
echo %hdir%\lib\hbziparc.lib + >> b32.bc
echo %hdir%\lib\hbmzip.lib + >> b32.bc
echo %hdir%\lib\hbzlib.lib + >> b32.bc
echo %hdir%\lib\minizip.lib + >> b32.bc
echo %hdir%\lib\png.lib + >> b32.bc
echo %hdir%\lib\hbusrrdd.lib + >> b32.bc
echo %hdir%\lib\hbtip.lib + >> b32.bc

rem Uncomment these two lines to use Advantage RDD
rem echo %hdir%\lib\rddads.lib + >> b32.bc
rem echo %hdir%\lib\Ace32.lib + >> b32.bc

echo %bcdir%\lib\cw32.lib + >> b32.bc
echo %bcdir%\lib\uuid.lib + >> b32.bc
echo %bcdir%\lib\import32.lib + >> b32.bc
echo %bcdir%\lib\ws2_32.lib + >> b32.bc
echo %bcdir%\lib\psdk\odbc32.lib + >> b32.bc
echo %bcdir%\lib\psdk\nddeapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\iphlpapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\msimg32.lib + >> b32.bc
echo %bcdir%\lib\psdk\psapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\rasapi32.lib + >> b32.bc
echo %bcdir%\lib\psdk\gdiplus.lib + >> b32.bc
echo %bcdir%\lib\psdk\urlmon.lib + >> b32.bc
echo %bcdir%\lib\psdk\shell32.lib, >> b32.bc


Espero te sirva
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: no envia el archivo, que hago mal???
Posted: Thu Apr 29, 2021 12:40 PM

ya pruebo y te digo.

gracias

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: no envia el archivo, que hago mal???
Posted: Thu Apr 29, 2021 09:37 PM
Error description: Error BASE/1004 Message not found: TFTP:CPROTO
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: no envia el archivo, que hago mal???
Posted: Thu Apr 29, 2021 10:30 PM

No hay nada que diga cProto, ni en la clase ni en el codigo que yo te pase.

Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: no envia el archivo, que hago mal???
Posted: Thu Apr 29, 2021 11:04 PM

no entiendo como algo tan facil en otros lenguajes en este sea tan complicado poder hacerlo.

HB_INETTIMEOUT

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: no envia el archivo, que hago mal???
Posted: Thu Apr 29, 2021 11:11 PM
cmsoft wrote:No hay nada que diga cProto, ni en la clase ni en el codigo que yo te pase.


por eso mismo no entiendo que es lo que pasa.
ya probe sientos de codigos solo puedo conectarme no puedo enviar un solo archivo menos descargarlo
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 199
Joined: Wed Jan 02, 2019 08:36 AM
Re: no envia el archivo, que hago mal???
Posted: Fri Apr 30, 2021 09:37 AM

Buenos dias

El comando FOpen() abre el archivo. Nada mas.

Fseek() posiciona el puntero de lectura.

Dentro de tu bucle no cambias el puntero con otro FSeek()
Como FRead() te devuelve el numero de bytes ledidos, yo comprobaría antes de escribir si cBuffer tiene contenido.

Saludos

Jesús Marín
deumare@gmail.com
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: no envia el archivo, que hago mal???
Posted: Fri Apr 30, 2021 09:46 AM
Este ejemplo esta probado esta misma mañana y funciona correctamente:
https://github.com/FiveTechSoft/mod_harbour/blob/master/samples/ftpup.prg
regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion