Prueba con el activex "Microsoft Internet Transfer Control 6.0" te mando el siguiente ejemplo en el cual le paso como parametro el Archivo, y mi control se llama ftp
Parameters cArch
Wait Window "Conectando con el Servidor" Nowait
lcPaso = "ftp://user:
[email protected]" && parametros usuario, clave y dirección
lcrutafuen = "c:\"
lcrutadest = "/carp"
lcArchivo = cArch
Wait Window "enviando "+Alltrim(lcArchivo)+" " Nowait
Thisform.ftp.EXECUTE(lcPaso,"put "+lcrutafuen+Alltrim(lcArchivo)+" "+Alltrim(lcrutadest);
+"/"+Alltrim(lcArchivo)+"") && Agrega el archivo
Do While Thisform.ftp.stillexecuting=.T.
Loop && espera para que termine
Enddo
Thisform.ftp.EXECUTE(lcPaso,"quit") && salir
Wait Window "Cerrando conexión" Nowait
Do While Thisform.ftp.stillexecuting=.T.
Loop && espera
Enddo
Thisform.ftp.EXECUTE(lcPaso,"close") && cerrar conexion
Wait Window "Saliendo de la conexion" Nowait
Do While Thisform.ftp.stillexecuting=.T.
Loop
Enddo