ftp con fivewin
- Paco Garcia
- Posts: 172
- Joined: Fri Oct 07, 2005 12:00 pm
- Contact:
ftp con fivewin
Hola.
¿Como se puede manejar FTP desde FiveWin?
Gracias
¿Como se puede manejar FTP desde FiveWin?
Gracias
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.
(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.
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
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
- jose_murugosa
- Posts: 943
- Joined: Mon Feb 06, 2006 4:28 pm
- Location: Uruguay
- Contact:
Clase QFtp
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
FWH + Harbour + Bcc7. Una seda!
José Murugosa
FWH + Harbour + Bcc7. Una seda!
Yo lo hago asi: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
Code: Select all
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.
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
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 -: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
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
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()
Saludos
R.F.
R.F.
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
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
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
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)
Buscare otras alternativas para el envio de email y manejo de FTP
Gracias por todo Rene
Saludos
George
- omarelunico
- Posts: 33
- Joined: Sun May 14, 2006 7:31 am
- Location: Lima - Perú
FTP
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
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
- omarelunico
- Posts: 33
- Joined: Sun May 14, 2006 7:31 am
- Location: Lima - Perú
ftp
El ejemplo que puse soporta archivos grandes, yo probe con archivos de 5MB y sin problemas.