Yo uso estas: http://www.chilkatsoft.com/
Tengo un programa para inmobiliarias y el problema es que cuando se hacen publicaciones en portales Web se manda mucha información y tarda bastante, las librerías basadas en Wininet iban bien pero a veces Internet no funciona como debiera y simplemente dejaban colgado todo.
De todas las que he probado estas, en el entorno que comento, son de las más fiables, pero eso si, son de paga.
Pepe Llopis
Siento no estar de acuerdo con lo de que nunca falla, si mandas ficheros pequeñitos va de lujo pero si haces un envío de, digamos, cincuenta o cien megas al servidor, tienes muchas posibilidades de quedarte colgado cualquier día.
Como siempre todo en la vida son compromisos.
Pepe Llopis
Saludos,
DECLARE LONG
InternetOpen IN "wininet.dll" STRING, LONG, STRING, STRING, LONGDECLARE LONG
InternetConnect IN "wininet.dll" LONG, STRING, LONG, STRING, STRING, LONG, LONG, LONGDECLARE INTEGER
FtpSetCurrentDirectory IN WinINet.DLL INTEGER, STRINGDECLARE INTEGER
FtpGetFileSize IN wininet INTEGER, LONG @DECLARE LONG
FtpOpenFile IN "wininet.dll" LONG, STRING, INTEGER, INTEGER, INTEGERDECLARE LONG
InternetReadFile IN "wininet.dll" LONG, STRING @, LONG, LONG @DECLARE INTEGER
InternetWriteFile IN WinINet.DLL INTEGER, STRING, INTEGER, INTEGER @DECLARE INTEGER
InternetCloseHandle IN "wininet.dll" LONGcSitioFTP="misitioftp.com"
cArchivoFTP="/miarchivo.rar"
cArchivoDestino="miarchivo.rar"
cCarpetaDestino="c:\"
miusuario=""
micontraseña=""
* Load
oo =
CREATEOBJECT("empty")ADDPROPERTY
ADDPROPERTY
(oo, "error", .F.)ADDPROPERTY
(oo, "archivo_remoto", cArchivoFTP)ADDPROPERTY
(oo, "directorio_remoto", "/")ADDPROPERTY
(oo, "servidor", cSitioFTP)ADDPROPERTY
(oo, "contraseña", micontraseña)ADDPROPERTY
(oo, "usuario", miusuario)ADDPROPERTY
(oo, "archivo_local", cCarpetaDestino+cArchivoDestino)ADDPROPERTY
(oo, "internet", 0)ADDPROPERTY
(oo, "ftp", 0)ADDPROPERTY
* Conectar
WAIT WIND
"Abriendo conexión de Internet..." NOWAIToo.internet = internetopen("Wininet", 0, .null., .null., 0)
if
oo.internet=0endif
WAIT WIND
"Conectando con "+oo.servidor+"..." NOWAIToo.ftp = internetconnect(oo.internet,
alltrim(oo.servidor), 21, alltrim(oo.usuario), alltrim(oo.contraseña), 1, 134217728, 0)if
oo.ftp=0internetclosehandle(oo.internet)
else
WAIT WIND
"¡Conexión establecida!" NOWAITendif
* Bajar
if
ftpsetcurrentdirectory(oo.ftp, '/'+oo.directorio_remoto)=0endif
enddo
fclose
(nfich)internetclosehandle(nfichftp)