FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour ftp con fivewin
Posts: 172
Joined: Fri Oct 07, 2005 12:00 PM
ftp con fivewin
Posted: Sun Jan 08, 2006 11:23 PM

Hola.
¿Como se puede manejar FTP desde FiveWin?
Gracias

Posts: 840
Joined: Thu Oct 13, 2005 07:05 PM
ftp con fivewin
Posted: Mon Jan 09, 2006 05:16 AM

Si, FiveWin tiene una clase llamada QFTP, que te permite hacer FTP con FW, sin embargo no se que pasa con los sockets de FW que cuando utilizas esta clase con ficheros grandes no los copia completos.

(x)Harbour tiene la TIP.LIB que funciona mejor que los sockets de FW para transferencia de archvios, o bueno, por lo menos si copia ficheros grandes sin problemas.

personlamente yo utilizo el componente FTP de Funcky 6.0 funciona como un sueño.

Saludos

R.F.
Posts: 298
Joined: Fri Oct 07, 2005 05:20 AM
ftp con fivewin
Posted: Mon Jan 09, 2006 10:19 PM

Mi estimado Paco :

Puede usar la clase QFtp con las modificaciones que le hizo Luis Krause, la clase funciona muy bien, tanto para subir, como para bajar archivos.

Vikthor
Posts: 729
Joined: Tue Oct 18, 2005 06:49 PM
ftp con fivewin
Posted: Tue Apr 25, 2006 03:11 PM

Rene

Podrias decirnos como se usa Funcky con FWH para la transferencia de archivos via FTP, un ejemplo de codigo seria muy util :)

He tratado de usarlo, siguiendo el ejemplo que viene en Funcky pero consigo un error cuando trato de leer el archivo para download o upload

     Error:Description:Error/Funcky6
     DISP_E_UNKNOWNAME:BACKUP.RES

"BACKUP.RES" es el archivo que deseo transferir. He verificado que esta en el directorio indicado. No se porque dice que es desconocido

Saludos

George

Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Clase QFtp
Posted: Wed Apr 26, 2006 01:36 AM
Vikthor wrote:Mi estimado Paco :

Puede usar la clase QFtp con las modificaciones que le hizo Luis Krause, la clase funciona muy bien, tanto para subir, como para bajar archivos.



Vikthor:

1. De dónde se puede bajar esta clase

2. Se que tienes clases "con costo", me interesaría que me mandaras e-mail sobre ChartFX y otras que pudieras tener y precios.
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 840
Joined: Thu Oct 13, 2005 07:05 PM
ftp con fivewin
Posted: Wed Apr 26, 2006 04:20 PM
George wrote:Rene

Podrias decirnos como se usa Funcky con FWH para la transferencia de archivos via FTP, un ejemplo de codigo seria muy util :-)


Yo lo hago asi:

oFtp := TOleAuto():New("Funckyftp")
oFtp:Connect("ftp.google.d2g.com","usuario","password")
oFtp:ChangeDir ("\downloads\ads")
oFtp:Get("adsdemo.exe", "c:\adsdemo.exe",0) 
oFtp:Disconnect()
Saludos

R.F.
Posts: 729
Joined: Tue Oct 18, 2005 06:49 PM
ftp con fivewin
Posted: Wed Aug 30, 2006 07:56 PM

Rene,

No he logrado poner a trabajar ninguno de los ejemplos que tu has posteado de Funcky.

He tratado de multiple formas pero solo consigo errores.

Sera que necesito algunos wrappers, o quizas algun archivo ".ch"

Estoy usando la version de evaluacion funcky60 y tan pronto pueda ponerla a trabajar voy a comprarla, pues me interesna las conexiones ftp y los envios de email, que tu indicas "van de perlas" con funcky.

Saludos

George

Posts: 840
Joined: Thu Oct 13, 2005 07:05 PM
ftp con fivewin
Posted: Wed Aug 30, 2006 11:46 PM
George wrote:Rene,

No he logrado poner a trabajar ninguno de los ejemplos que tu has posteado de Funcky.

He tratado de multiple formas pero solo consigo errores.

Sera que necesito algunos wrappers, o quizas algun archivo ".ch"

Estoy usando la version de evaluacion funcky60 y tan pronto pueda ponerla a trabajar voy a comprarla, pues me interesna las conexiones ftp y los envios de email, que tu indicas "van de perlas" con funcky.

Saludos


George


George, hay un problema conocido y reportado con la clase TOLEAuto, te explico que pasa y como solucionarlo, como me lo explico Jose Gimenez:

La clase TOleAuto() tiene 3 metodos que pueden causar problemas con cualquier componente OLE que tenga metodos con nombres similares, que son ::Get() ::Set() ::Invoque(), lo que provoca que al construir tu objeto Ole, si este tiene entre sus propiedades metodos con nombres similares, falle.

En el caso de Funcky, tienes un metodo GET, que invariaablemente va a chocar contra el meotodo GET te ToleAuto, asi que la solucion es hacer la llamada como sigue:
oFtp := TOleAuto():New("Funckyftp")
oFtp:Connect("ftp.google.d2g.com","usuario","password")
oFtp:ChangeDir ("\downloads\ads")

/* aqui es donde puede surgir el problema erroneamente la forma de
* llamar al metodo seria:
* oFtp:Get("adsdemo.exe", "c:\adsdemo.exe",0)
*
* Sin embargo el metodo GET de funcky entra en conflicto con el metodo 
* GET de TOleAuto para solucionarlo hacemos:
*/

oFTP:Get( "Get", "adsdemo.exe","c;\adsdemo.exe",0)

/* tambien es valido hacer:
oFtp:Invoque("Get", "adsdemo.exe","C:\adsdemo.exe",0) */

oFtp:Disconnect()


Gracias José Gimenez, pude haberme vuelto loco buscando la solucion, pero el me soluciono el problema.
Saludos

R.F.
Posts: 729
Joined: Tue Oct 18, 2005 06:49 PM
ftp con fivewin
Posted: Thu Aug 31, 2006 12:47 AM
Rene,

Parece que el problema que tengo es con la version de evaluacion de Funcky. No me funciona nada que tenga que ver con funcky, ni siquiera el ejemplo compilado tuyo FunckyDemo.exe

Con el codigo de tu post anterior anterior sigo consiguiendo el mismo error
Error occurred at: 08/30/2006, 20:40:35
   Error description: Error TOleAuto/-1  Unknown error: TOLEAUTO:NEW
   Args:
     [   1] = C   FunckyFtp

Stack Calls
===========
   Called from:  => THROW(0)
   Called from: win32ole.prg => TOLEAUTO:NEW(319)
   Called from: MAIN.PRG => TESTFUNCKY(1095)
   Called from: MAIN.PRG => (b)FRAMEBAR(344)


Mis herramientas son xBuilder Pro (xHarbour 0.99.61) + FWH Aug_08

Buscare otras alternativas para el envio de email y manejo de FTP

Gracias por todo Rene

Saludos

George
Posts: 33
Joined: Sun May 14, 2006 07:31 AM
FTP
Posted: Tue Jul 10, 2007 10:19 PM

Esto me funciona siempre bien.
Pruebalo

include "fivewin.ch"

static cServer//:="204.233.245.140",
static odlg,ownd
static cDirIp1,cNomZipLo1,CNomZipRe1,cDirRemot1,cUser1,cPasswd1
function main()
set date to british
SET CENTURY ON
dbcloseall()
use tablaftp exclusive new
TablaFtp->(dbgotop())
cDirIP1:=alltrim(TablaFtp->DirIp)//Direccion IP
cDirLocal1:=alltrim(TablaFtp->DirLocal)//Direccion Local
cDirRemot1:=alltrim(TablaFtp->DirRemot)//Direccion Remota
cNomZipLo1:=alltrim(TablaFtp->NomZipLo)//Nombre Zip Local
cNomZipRe1:=alltrim(TablaFtp->NomZipRe)//Nombre Zip Remoto
cUser1:=alltrim(TablaFtp->User)//Usuario
CPasswd1:=alltrim(TablaFtp->Passwd)//Contraseña
lchdir(cdirlocal1)
dbcloseall()
FtpEnvio()
return nil

Function FtpEnvio()
local cuser,cpass,cremote,clocal,cfecha
cserver:=cdirip1//direccion IP del Server FTP
cuser:=cuser1//"usuario"
cpass:=cpasswd1//"contraseña"
cremote:=cdirremot1 // "directorio/publico/" directorio dentro del ftp
cnombre:=dtoc(date())//nombre del archivo
lchdir("envioftp") //ingreso a un directorio dentro de windows
//cremote=cremote+"/"+"prueba4"+".zip"
cfecha:=substr(dtoc(date()),7,4)+substr(dtoc(date()),4,2)+substr(dtoc(date()),1,2)
clocal:=cfecha+cNomZipLo1
if file(clocal)
ftpsend(cserver,cdirremot1,cuser,cpass,clocal)
endif
lchdir("..")
return nil

FUNCTION FtpSend(cFTPServer,cFTPDir,cFTPUser,cFTPPwd,cFile)
//--------------------------------------------------------//
LOCAL oFtp, oInt, hMon, lRet
if !Empty(cFTPDir) .AND. !Right(cFTPDir,1)=="/"
cFTPDir := cFTPDir+"/"
end
FtpInit(@oInt,@oFtp,cFTPServer,cFTPUser,cFTPPwd)
//hMon := fCreate("info.txt")
hmon:="ftp.txt"
if oFtp:hFtp > 0
SendFile(cFTPDir,cFile,oFtp,hMon,oInt)
else
//msginfo("HAY PROBLEMAS EN SU CONEXIÒN A INTERNET, DATOS NO PUDIERON SER ENVIADOS","IMPORTANTE")
end
oInt:End()
oFtp:end()
RETUrn NIL

FUNCTION FtpInit(oInt,oFtp,cFTPServer,cFTPUser,cFTPPwd)
//--------------------------------------------------------//
oInt := tInternet():New()
oFtp := TFtp():New(cFTPServer, oInt, cFTPUser,cFTPPwd)
RETU NIL

STATIC FUNCTION SendFile(cFTPDir,cFile,oFtp,hMon,oInt)
//--------------------------------------------------------//
LOCAL oFile, h, cBuff, nSize, nRead, nWrite
LOCAL lRet := .F.
oFile := TFtpFile():New(cFTPDir+cFile,oFtp)
oFile:OpenWrite()
if oFile:hFile > 0
h := fOpen(cFile)
nSize := fSeek(h,0,2)
fSeek(h,0,0)
cBuff := Space(nSize)
nRead := fRead(h,@cBuff,nSize)
fClose(h)
nWrite:= oFile:Write( cBuff )
If nWrite==nRead
lRet := .T.
//msginfo("DATOS FUERON ENVIADOS CORRECTAMENTE","INFORMACIÒN")
Else
//Msginfo("NO SE PUDO ENVIAR, ARCHIVO ESTÀ ABIERTO POR OTRO PROCESO, REVISELO","IMPORTANTE")
oInt:end()
oFtp:end()
End
else
//Msginfo("HAY PROBLEMAS EN ABRIR EL ARCHIVO PARA SER ENVIADO","IMPORTANTE")
oInt:end()
oFtp:end()
endif
RETURN lRet

Posts: 33
Joined: Sun May 14, 2006 07:31 AM
ftp
Posted: Tue Jul 10, 2007 10:22 PM

El ejemplo que puse soporta archivos grandes, yo probe con archivos de 5MB y sin problemas.

Continue the discussion