ftp con fivewin

ftp con fivewin

Postby Paco Garcia » Sun Jan 08, 2006 11:23 pm

Hola.
¿Como se puede manejar FTP desde FiveWin?
Gracias
User avatar
Paco Garcia
 
Posts: 172
Joined: Fri Oct 07, 2005 12:00 pm

Postby R.F. » Mon Jan 09, 2006 5: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.
R.F.
 
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Postby Vikthor » 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
User avatar
Vikthor
 
Posts: 271
Joined: Fri Oct 07, 2005 5:20 am
Location: México

Postby George » Tue Apr 25, 2006 3: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
George
 
Posts: 725
Joined: Tue Oct 18, 2005 6:49 pm

Clase QFtp

Postby jose_murugosa » Wed Apr 26, 2006 1: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 y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1180
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Postby R.F. » Wed Apr 26, 2006 4: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:

Code: Select all  Expand view
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.
R.F.
 
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Postby George » Wed Aug 30, 2006 7: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
George
 
Posts: 725
Joined: Tue Oct 18, 2005 6:49 pm

Postby R.F. » 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 -:

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:
Code: Select all  Expand view
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é -, pude haberme vuelto loco buscando la solucion, pero el me soluciono el problema.
Saludos
R.F.
R.F.
 
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Postby George » 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
Code: Select all  Expand view
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
George
 
Posts: 725
Joined: Tue Oct 18, 2005 6:49 pm

FTP

Postby omarelunico » 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
User avatar
omarelunico
 
Posts: 33
Joined: Sun May 14, 2006 7:31 am
Location: Lima - Perú

ftp

Postby omarelunico » Tue Jul 10, 2007 10:22 pm

El ejemplo que puse soporta archivos grandes, yo probe con archivos de 5MB y sin problemas.
User avatar
omarelunico
 
Posts: 33
Joined: Sun May 14, 2006 7:31 am
Location: Lima - Perú


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 43 guests