Page 1 of 2

Enviar/Recibir archivos via ftp [ SOLVED ]

PostPosted: Thu Dec 16, 2010 3:02 pm
by Raymundo Islas M.
Antonio,

Llevo varios dias peleando con este tema, me pregunto si hay algun ejemplo en concreto que funcione correctamente.

Ya lei y probe todos los hilos : Los de Enrico, el icopyfil y el de varios compañeros , y en todos me estanco cuando se verifica si se genero el objeto tInternet:new()

Si uso hIntCon := LoadLib32( "WinInet.dll" ) me regresa 0 puesto que estoy incluyendo la lib, pero ya cuando quiero realizar la operacion SIEMPRE me dice que no se puede cargar y nomas no continua.
Ya intente registrarla y nop, igual.

Hay algo que no este haciendo bien o que me falte realizar ?

PD : Conexion a Internet la tengo en todo momento

Saludos

Re: Enviar/Recibir archivos via ftp

PostPosted: Thu Dec 16, 2010 6:23 pm
by Manuel Aranda
Hola Raimundo:

Has visitado el bolg de BielSys ? Quizá ahí encuentres lo que buscas en la entrada "Actualización automatica de aplicaciones via FTP"

http://bielsys.blogspot.com/

Re: Enviar/Recibir archivos via ftp

PostPosted: Fri Dec 17, 2010 12:26 am
by Raymundo Islas M.
Manuel,

Gracias por contestar,

Efectivamente, la opcion que ofrece Biel fue mi primera opcion a probar, ya que estoy es proceso de liberar la nueva version de la app y estoy actualizando a muchas pcs de los clientes. Sin embargo tambien me tope con el bloqueo que genera la wininet.dll

No se que este pasando, recuerdo hace algun tiempo hacer pruebas satisfactorias en mandar emails desde FWH y esto del ftp y ahora nop, no quiere funcar nada.

Voy a desemplovar mi vieja version 8.12 que tengo para probar.

Te agradezco de todos modos tu sugerencia y si alguna tiene la receta de como resolver este detalle con la dll se lo agradeceria enormemente.

Saludos

Re: Enviar/Recibir archivos via ftp

PostPosted: Wed Dec 22, 2010 10:34 pm
by Raymundo Islas M.
Ok,

La solucion a esto fue algo que nunca imagine : un archivo .bat

Code: Select all  Expand view
@echo off
echo user xxuserxx> ftpcmd.dat
echo xxpasswordxx>> ftpcmd.dat
echo ascii>> ftpcmd.dat
echo put %1>> ftpcmd.dat                       <------ Aqui tambien se puede poner la ruta y nombre remoto del archivo a subir al ftp
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat xxnombre_o_ip_del_ftpxx
del ftpcmd.dat
 

Cambian los valores reales de su ftp en los datos con xxalgoxx

Y tan simple como : nombredelarchivo.bat xxxxx <---- nombre del archivo a subir, se le puede poner ruta

Y listo !!!

Probado en mi ftp y con el de un proveedor autorizado para fact. electronica

Si bien NO es la solucion a mi problema, al menos puedo continuar en lo que tengo que hacer.

Saludos

Re: Enviar/Recibir archivos via ftp [ SOLVED ]

PostPosted: Wed Dec 22, 2010 11:20 pm
by Armando
Raymundo:

Excelente !, y me acabas de dar una idea para solucionar el post de innosetup.

Saludos

Re: Enviar/Recibir archivos via ftp [ SOLVED ]

PostPosted: Thu Dec 23, 2010 2:31 pm
by russimicro
FUNCTION ConectaServerFTP(cNomSer,cNomUsr,cClaUsr,cDocNit,oFtp)
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:Open( )

IF oFtp <> NIL
RETURN .T.
ENDIF

RETURN .F.

******************************************************************************


FUNCTION SubeTablasFacturasFtp(cNitEmp,cCiaDes,cCodVen,oFtp)

LOCAL cLocFil := ""
LOCAL cRemFil := ""
LOCAL cUniLoc := "\zerusmovil\"+cCiaDes+"\"+cCodVen+"\temp\"
LOCAL cUniRem := "moviles/"+cNitEmp+"/"+cCiaDes+"/"+cCodVen+"/"

cLocFil := cUniLoc+"FACTURAS.CSV"
cRemFil := cUniRem+"FACTURAS.CSV"

SELECT MOV_FAC
MOV_FAC->( DBGOTOP() )
IF MOV_FAC->( !EOF() )
COPY TO &(cLocFil) DELIMITED WITH ( { [], [,] } )
IF HB_FSize(cLocFil) > 0
oFtp:UpLoadFile( cLocFil, cRemFil )
ENDIF
ENDIF

RETURN .T.

***************************************************************************

FUNCTION BajaTablasFtp(cNitEmp,cCiaDes,cCodVen)

LOCAL cUniFtp := "moviles/"+cNitEmp+"/"+cCiaDes+"/"+cCodVen+"/"
LOCAL cUniDes := "C:\TEMP"
LOCAL aVecArc := oFtp:listFiles(cUniFtp + "/" + "*.TXT")
LOCAL J := 0, cNomArc := ""
LOCAL nLonArc := 27 // TAMA¥O DEL NOMBRE DE ARCHIVOS.TXT

FOR J := 1 TO LEN(aVecArc)

cArcOri := aVecArc[J,1]
cNomArc := SUBS(aVecArc[J,1],LEN(aVecArc[J,1]) - nLonArc )
cArcDes := cUniDes+"\"+cNomArc

IF ( oFtp:fileSize(cArcOri) > 0 )
oFtp:DownLoadFile( cArcDes, cArcOri )
AnexarTxtTem(cUniDes,cArcDes,cNomArc,"PEDIDOS",oFtp,cArcOri) // FUNCTION PROPIA
ENDIF

NEXT J

RETURN

********************************************************************************



Johnson Russi

Re: Enviar/Recibir archivos via ftp [ SOLVED ]

PostPosted: Thu Dec 23, 2010 4:41 pm
by Raymundo Islas M.
Jhonson,

Muchas gracias por la aportacion, hare pruebas con tu codigo, pero te tengo una pequeña pregunta :

Funciona directa/indirectamente con la WinInet.Dll ??

Ya que ese ha sido mi gran problema, he visto/leido que varios colegas la usan sin problemas. En mi caso, simple y sencillamente me bloquea.

Y hasta la fecha no he encontrado algun post que indique que tratamiento ( si es que lo requiera ) aplicarle para que pueda funcionar.
Ya que como comente previamente, hice algunos copy/paste de otras opciones y en todas, al momento de crear el objeto de conexion, siempre de devuelve que no hay, cuando claramente la tengo.

Te agradezco mucho, ojala y se pueda realizar el envio/recepcion que necesito.

Saludos

Re: Enviar/Recibir archivos via ftp [ SOLVED ]

PostPosted: Sun Dec 26, 2010 1:17 am
by Raymundo Islas M.
Jhonson,

Excelente !!!

Funciona Perfecto.


Muchas Gracias y Saludos

Re: Enviar/Recibir archivos via ftp [ SOLVED ]

PostPosted: Fri Mar 04, 2011 1:44 am
by QAZWSX2K
AMIGO Jhonson, ando probando tu rutina y me da error en estas funciones

tIPClientFtp()
turl()

esas son propias tuyas o de que serian, gracias

Re: Enviar/Recibir archivos via ftp [ SOLVED ]

PostPosted: Fri Mar 04, 2011 4:12 pm
by Raymundo Islas M.
Alex,

Son propias de XHarbour, solo te falta agregar una lib a tu proyecto : tip.lib


Saludos

Re: Enviar/Recibir archivos via ftp [ SOLVED ]

PostPosted: Fri Mar 18, 2011 6:50 pm
by QAZWSX2K
gracias a todos, ya esta funcionando 100% ok

Re: Enviar/Recibir archivos via ftp [ SOLVED ]

PostPosted: Sun Apr 10, 2011 1:38 pm
by QAZWSX2K
amigos

sobre la rutina he encontrado un detalle que me parece peligroso y es que generan un archivo log llamado ftp1, ftp2, y asi sucesivamente cada vez que se ejecuta y en este archivito log pone hasta la clave, etc, parece que fuera de la propia libreria de harbour, habra algun paramentro no documentado que haga que no lo genere?

gracias

Re: Enviar/Recibir archivos via ftp

PostPosted: Wed Aug 31, 2011 6:07 am
by RodolfoRBG
Hola mis cuates,

Tomando el ejemplo de Johnson Russi, a mi se me congela el sistema en la instruccion:

oUrl := tUrl():New( cUrl )

Alguna idea del porque?

Salu2

Re: Enviar/Recibir archivos via ftp [ SOLVED ]

PostPosted: Thu Sep 01, 2011 1:08 am
by Raymundo Islas M.
Rodolfo,

si agregaste las libs requeridas ?

Con las funciones de Russi todo estuvo ok desde la primera !!


Saludos

Re: Enviar/Recibir archivos via ftp [ SOLVED ]

PostPosted: Thu Sep 01, 2011 2:42 am
by RodolfoRBG
Compadre, gracias por responder.

Si tengo la libreria Tip.LIB incluida pero se trato de un problema con la forma en que tenia los archivos en el servidor.

Ya puedo bajar archivos, lo unico que no me funciona es que al dar la instruccion:

xbrowse(oFtp:DIRECTORY('*.*'))

me da un solo elemento por cada archivo con el nombre de "Binary"