no envia el archivo, que hago mal???

Post Reply
User avatar
goosfancito
Posts: 1955
Joined: Fri Oct 07, 2005 7:08 pm

no envia el archivo, que hago mal???

Post by goosfancito »

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: Select all | Expand

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/
User avatar
cmsoft
Posts: 1297
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Been thanked: 2 times

Re: no envia el archivo, que hago mal???

Post by cmsoft »

Hola Gustavo:
Te paso un ejemplo que me está funcionando.

Code: Select all | Expand


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: Select all | Expand


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
User avatar
goosfancito
Posts: 1955
Joined: Fri Oct 07, 2005 7:08 pm

Re: no envia el archivo, que hago mal???

Post by goosfancito »

ya pruebo y te digo.

gracias
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
Posts: 1955
Joined: Fri Oct 07, 2005 7:08 pm

Re: no envia el archivo, que hago mal???

Post by goosfancito »

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/
User avatar
cmsoft
Posts: 1297
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Been thanked: 2 times

Re: no envia el archivo, que hago mal???

Post by cmsoft »

No hay nada que diga cProto, ni en la clase ni en el codigo que yo te pase.
User avatar
goosfancito
Posts: 1955
Joined: Fri Oct 07, 2005 7:08 pm

Re: no envia el archivo, que hago mal???

Post by goosfancito »

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/
User avatar
goosfancito
Posts: 1955
Joined: Fri Oct 07, 2005 7:08 pm

Re: no envia el archivo, que hago mal???

Post by goosfancito »

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/
JESUS MARIN
Posts: 178
Joined: Wed Jan 02, 2019 8:36 am

Re: no envia el archivo, que hago mal???

Post by JESUS MARIN »

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
Last edited by JESUS MARIN on Fri Apr 30, 2021 10:02 am, edited 1 time in total.
Jesús Marín
deumare@gmail.com

Mi especialidad en programación : Virtualidad real ( en vez de la realidad virtual ) ;)
User avatar
Antonio Linares
Site Admin
Posts: 42513
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 73 times
Contact:

Re: no envia el archivo, que hago mal???

Post by Antonio Linares »

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
Post Reply