Como conectar y transferir archivos por wifi
-
- Posts: 233
- Joined: Wed Aug 09, 2006 3:07 pm
Como conectar y transferir archivos por wifi
Hola a todos....
He leido por el foro que para poder acceder desde la pocket pc a un archivo ubicado en otra maquina se ha de mapear el directorio de esa computadora para que sea accesible haciendo
\\NombreOtraComputadora\path\NombreFichero.
Yo realizo eso pero no me abre el archivo... Lo que pretendo es descargarme (para luego volver a volcar la informacion) una tabla desde otra ubicacion mediante wifi...
He leido tambien que se debe cargar en memoria con la funcion MemoRead(). Lo hago y cuando pongo MsgInfo( MemoRead( "\\NombreOtraComputadora\path\NombreFichero" ) ) me aparece el cuadro de dialogo vacio. Me gustaria que alguien me guiara un poco sobre este tema, o de donde puedo obtener mas informacion...
Gracias y un saludo a todos...
Elías Torres.
He leido por el foro que para poder acceder desde la pocket pc a un archivo ubicado en otra maquina se ha de mapear el directorio de esa computadora para que sea accesible haciendo
\\NombreOtraComputadora\path\NombreFichero.
Yo realizo eso pero no me abre el archivo... Lo que pretendo es descargarme (para luego volver a volcar la informacion) una tabla desde otra ubicacion mediante wifi...
He leido tambien que se debe cargar en memoria con la funcion MemoRead(). Lo hago y cuando pongo MsgInfo( MemoRead( "\\NombreOtraComputadora\path\NombreFichero" ) ) me aparece el cuadro de dialogo vacio. Me gustaria que alguien me guiara un poco sobre este tema, o de donde puedo obtener mas informacion...
Gracias y un saludo a todos...
Elías Torres.
-
- Posts: 233
- Joined: Wed Aug 09, 2006 3:07 pm
Gracias Rene, he descargado el emulador para la version 5. Por cierto va super lento, pero es la unica forma que tengo de poder probar la aplicacion, puesto que todavia no dispongo de ninguna pocket pc con la version 5....
Lo que he hecho ha sido lo siguiente...
Para probar he puesto una tabla .dbf y .cdx en otra maquina. Mi intencion es que cuando arranque la aplicacion esta localice de esa maquina los archivos en cuestion y me los pueda descargar en la pda (en algun directorio) para poder trabajar de forma autonoma con ellos y luego hacer lo mismo pero en sentido contrario, es decir volver a volcar la tabla modificada en la maquina donde la cogi...
Como comentaba antes he leido que se necesita guardar la ruta previa de la maquina donde se encuentre los archivos que necesito descargar... Lo que he hecho es:
MemoRead( "\\maquina\path\articulos" )
USE (CurDir() + "\\maquina\path\articulos") VIA "DBFCDX" new
articulos->( OrdSetFocus( "cod_art+nom_art+codcli" ) )
INDEX ON cod_art+nom_art+codcli TO articulos
AliasArticulos := Alias()
Pero esto no me funciona me dice que no puede abrir la tabla....
Que es lo que me falta??
Un saludo...
Elías Torres.
Lo que he hecho ha sido lo siguiente...
Para probar he puesto una tabla .dbf y .cdx en otra maquina. Mi intencion es que cuando arranque la aplicacion esta localice de esa maquina los archivos en cuestion y me los pueda descargar en la pda (en algun directorio) para poder trabajar de forma autonoma con ellos y luego hacer lo mismo pero en sentido contrario, es decir volver a volcar la tabla modificada en la maquina donde la cogi...
Como comentaba antes he leido que se necesita guardar la ruta previa de la maquina donde se encuentre los archivos que necesito descargar... Lo que he hecho es:
MemoRead( "\\maquina\path\articulos" )
USE (CurDir() + "\\maquina\path\articulos") VIA "DBFCDX" new
articulos->( OrdSetFocus( "cod_art+nom_art+codcli" ) )
INDEX ON cod_art+nom_art+codcli TO articulos
AliasArticulos := Alias()
Pero esto no me funciona me dice que no puede abrir la tabla....
Que es lo que me falta??
Un saludo...
Elías Torres.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
-
- Posts: 233
- Joined: Wed Aug 09, 2006 3:07 pm
Gracias Antonio, me ha funcionado...
Queria comentarte otra cosilla..He cogido el programa ftp.prg y lo he modificado con los datos de ip de mi ftp, el usuario y la contraseña
PUBLIC server:="ftp://ip"+space(15)
PUBLIC user:="usuario"+space(15)
PUBLIC pass:="pass"+space(15)
PUBLIC loc_archivo:=curdir()+"\users.bmp"+space(15)
PUBLIC rem_archivo:="users.bmp"+space(40)
El archivo que pretendo enviar como prueba es una imagen llamada users.bmp. Lo he puesto como te muestro. Mi pregunta es: ¿se supone que el archivo que envio al servidor lo está cogiendo de la carpeta samples? Si quisiera darle otra ubicacion, ¿como lo hago?.
Por ultimo, entendiendo que esto está bien, cuando le doy al boton de enviar me muestra un msginfo con un 6 y no me carga nada en el ftp, ¿esto que significa?....
Un saludo y gracias por la ayuda...
Elías Torres.
Queria comentarte otra cosilla..He cogido el programa ftp.prg y lo he modificado con los datos de ip de mi ftp, el usuario y la contraseña
PUBLIC server:="ftp://ip"+space(15)
PUBLIC user:="usuario"+space(15)
PUBLIC pass:="pass"+space(15)
PUBLIC loc_archivo:=curdir()+"\users.bmp"+space(15)
PUBLIC rem_archivo:="users.bmp"+space(40)
El archivo que pretendo enviar como prueba es una imagen llamada users.bmp. Lo he puesto como te muestro. Mi pregunta es: ¿se supone que el archivo que envio al servidor lo está cogiendo de la carpeta samples? Si quisiera darle otra ubicacion, ¿como lo hago?.
Por ultimo, entendiendo que esto está bien, cuando le doy al boton de enviar me muestra un msginfo con un 6 y no me carga nada en el ftp, ¿esto que significa?....
Un saludo y gracias por la ayuda...
Elías Torres.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Elías,
> Si quisiera darle otra ubicacion, ¿como lo hago?.
Cambia CurDir() por la ubicación que quieras.
>
Por ultimo, entendiendo que esto está bien, cuando le doy al boton de enviar me muestra un msginfo con un 6 y no me carga nada en el ftp, ¿esto que significa?....
>
El ejemplo ftp.prg sólo muestra el valor de FTPPUTFILE() y esa función devuelve un valor lógico. No se de donde te sale un 6.
Cómo has modificado ftp.prg ?
> Si quisiera darle otra ubicacion, ¿como lo hago?.
Cambia CurDir() por la ubicación que quieras.
>
Por ultimo, entendiendo que esto está bien, cuando le doy al boton de enviar me muestra un msginfo con un 6 y no me carga nada en el ftp, ¿esto que significa?....
>
El ejemplo ftp.prg sólo muestra el valor de FTPPUTFILE() y esa función devuelve un valor lógico. No se de donde te sale un 6.
Cómo has modificado ftp.prg ?
-
- Posts: 233
- Joined: Wed Aug 09, 2006 3:07 pm
Hola Antonio.
El ftp.prg lo he modificado solamente las lineas:
PUBLIC server:="ftp://ip"+space(15)
PUBLIC user:="usuario"+space(15)
PUBLIC pass:="pass"+space(15)
PUBLIC loc_archivo:=curdir()+"\users.bmp"+space(15)
PUBLIC rem_archivo:="users.bmp"+space(40)
correspondientes a la funcion MAIN. Donde pone ip pongo logicamente la direccion del ftp, en usuario el login y en pass la contraseña. Users.bmp es el archivo que pretendo enviar...
Por lo demas no he cambiado nada... No se si ese será el problema. No se si entendi mal el post anterior, ¿el programa no realiza la transmision fisicamente?...
Si este fuera el caso me podrías indicar como hacerlo? Te lo agradecería..
Un saludo y gracias-
Elías Torres.
El ftp.prg lo he modificado solamente las lineas:
PUBLIC server:="ftp://ip"+space(15)
PUBLIC user:="usuario"+space(15)
PUBLIC pass:="pass"+space(15)
PUBLIC loc_archivo:=curdir()+"\users.bmp"+space(15)
PUBLIC rem_archivo:="users.bmp"+space(40)
correspondientes a la funcion MAIN. Donde pone ip pongo logicamente la direccion del ftp, en usuario el login y en pass la contraseña. Users.bmp es el archivo que pretendo enviar...
Por lo demas no he cambiado nada... No se si ese será el problema. No se si entendi mal el post anterior, ¿el programa no realiza la transmision fisicamente?...
Si este fuera el caso me podrías indicar como hacerlo? Te lo agradecería..
Un saludo y gracias-
Elías Torres.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
-
- Posts: 233
- Joined: Wed Aug 09, 2006 3:07 pm
Antonio el codigo es el siguiente...
#include "Fwce.ch"
//
// File attributes
//
#define FILE_ATTRIBUTE_READONLY 1
#define FILE_ATTRIBUTE_HIDDEN 2
#define FILE_ATTRIBUTE_SYSTEM 4
#define FILE_ATTRIBUTE_DIRECTORY 16
#define FILE_ATTRIBUTE_ARCHIVE 32
#define FILE_ATTRIBUTE_NORMAL 128
#define FILE_ATTRIBUTE_TEMPORARY 256
//
// access types for InternetOpen()
//
#define INTERNET_OPEN_TYPE_PRECONFIG 0 // use registry configuration
#define INTERNET_OPEN_TYPE_DIRECT 1 // direct to net
#define INTERNET_OPEN_TYPE_PROXY 3 // via named proxy
#define INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY 4 // prevent using java/script/INS
//
// manifests
//
#define INTERNET_INVALID_PORT_NUMBER 0 // use the protocol-specific default
#define INTERNET_DEFAULT_FTP_PORT 21 // default for FTP servers
#define INTERNET_DEFAULT_GOPHER_PORT 70 // " " gopher "
#define INTERNET_DEFAULT_HTTP_PORT 80 // " " HTTP "
#define INTERNET_DEFAULT_HTTPS_PORT 443 // " " HTTPS "
#define INTERNET_DEFAULT_SOCKS_PORT 1080 // default for SOCKS firewall servers.
//
// service types for InternetConnect()
//
#define INTERNET_SERVICE_FTP 1
#define INTERNET_SERVICE_GOPHER 2
#define INTERNET_SERVICE_HTTP 3
//
// flags for FTP
//
#define INTERNET_FLAG_TRANSFER_ASCII 1
#define INTERNET_FLAG_TRANSFER_BINARY 2
FUNCTION MAIN()
LOCAL oWnd
PUBLIC server:="ftp://ipftp"+space(15)
PUBLIC user:="usuario"+space(15)
PUBLIC pass:="pass"+space(15)
PUBLIC loc_archivo:=curdir()+"\users.bmp"+space(15)
PUBLIC rem_archivo:="users.bmp"+space(40)
PUBLIC lSobreescribir:=.T.
PUBLIC lBinary:=.T.
DEFINE WINDOW oWND TITLE "Prueba FTP"
#DEFINE margen_derecho 5
#DEFINE largo_say 100
#DEFINE largo_get 130
#DEFINE ancho 20
#DEFINE separacion_entre_lineas ancho+10
** SERVIDOR:
#DEFINE oSay1 oWND:aControls[1]
@10,margen_derecho SAY "Servidor: " SIZE largo_say, ancho PIXEL OF oWND
@ oSay1:ntop, oSay1:nRight+1 GET server SIZE largo_get, ancho PIXEL OF oWnd
** USER:
#DEFINE oSay2 oWnd:aControls[3]
@ oSay1:nTop+separacion_entre_lineas, margen_derecho SAY "User:" SIZE largo_say, ancho PIXEL OF oWnd
@ oSay2:nTop, oSay2:nRight+1 GET user SIZE largo_get,ancho PIXEL OF oWnd
** PASS:
#DEFINE oSay3 oWnd:aControls[5]
@ oSay2:nTop+separacion_entre_lineas, margen_derecho SAY "Password:" SIZE largo_say, ancho PIXEL OF oWnd
@ oSay3:nTop, oSay3:nRight+1 GET pass SIZE largo_get,ancho PIXEL OF oWnd
* ARCHIVO LOCAL:
#DEFINE oSay4 oWnd:aControls[7]
@ oSay3:nTop+separacion_entre_lineas, margen_derecho SAY "Archivo local:" SIZE largo_say, ancho PIXEL OF oWnd
@ oSay4:nTop, oSay4:nRight+1 GET loc_archivo SIZE largo_get,ancho PIXEL OF oWnd
* ARCHIVO REMOTO:
#DEFINE oSay5 oWnd:aControls[9]
@ oSay4:nTop+separacion_entre_lineas, margen_derecho SAY "Archivo Remoto:" SIZE largo_say, ancho PIXEL OF oWnd
@ oSay5:nTop, oSay5:nRight+1 GET rem_archivo SIZE largo_get,ancho PIXEL OF oWnd
* ENVIAR
#DEFINE oButton1 oWnd:aControls[11]
@ oSay5:nTop+separacion_entre_lineas, margen_derecho+10 BUTTON "Enviar" SIZE 50, ancho PIXEL ACTION msginfo(enviar()) OF oWnd
* TRAER
#DEFINE oButton2 oWnd:aControls[12]
@ oButton1:nTop, oButton1:nRight+20 BUTTON "Traer" SIZE 50, ancho PIXEL ACTION msginfo(traer()) OF oWnd
* SOBREESCRIBIR
#DEFINE oChk1 oWnd:aControls[13]
@ oButton1:nTop+separacion_entre_lineas, margen_derecho CHECKBOX lSobreescribir PROMPT "Sobreescribir" SIZE 150, ancho PIXEL OF oWnd
* BINARY
#DEFINE oChk2 oWnd:aControls[14]
@ oChk1:nTop+separacion_entre_lineas, margen_derecho CHECKBOX lBinary PROMPT "Transferencia Binaria" SIZE 150, ancho PIXEL OF oWnd
ACTIVATE WINDOW oWND
RETURN NIL
FUNCTION Enviar()
LOCAL nRet
LOCAL hInternet, hConnect
hInternet = INTERNETOPEN( "Anystring", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0 )
hConnect = INTERNETCONNECT(hInternet, rtrim(server), INTERNET_INVALID_PORT_NUMBER, rtrim(user), rtrim(pass), INTERNET_SERVICE_FTP, 0, 0 )
IF FTPPUTFILE( hConnect, rtrim(loc_archivo), rtrim(rem_archivo),iif(lBinary,INTERNET_FLAG_TRANSFER_BINARY,INTERNET_FLAG_TRANSFER_ASCII), 0 )
nRet:=0
ELSE
nRet:=GetLAstError()
ENDIF
INTERNETCLOSEHANDLE( hConnect )
INTERNETCLOSEHANDLE( hInternet )
RETURN nRet
FUNCTION Traer()
LOCAL nRet
LOCAL hInternet, hConnect
hInternet = INTERNETOPEN( "Anystring", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0 )
hConnect = INTERNETCONNECT(hInternet, rtrim(server), INTERNET_INVALID_PORT_NUMBER, rtrim(user), rtrim(pass), INTERNET_SERVICE_FTP, 0, 0 )
IF FTPGETFILE( hConnect, rtrim(rem_archivo), rtrim(loc_archivo), IIF( lSobreescribir,0,1), FILE_ATTRIBUTE_ARCHIVE, 0, 0 )
nRet:=0
ELSE
nRet:=GetLAstError()
ENDIF
INTERNETCLOSEHANDLE( hConnect )
INTERNETCLOSEHANDLE( hInternet )
RETURN nRet
#pragma BEGINDUMP
#include "windows.h"
#include "wininet.h"
#include "hbapi.h"
LPWSTR AnsiToWide( LPSTR );
HB_FUNC( INTERNETOPEN )
{
LPWSTR cAgent = AnsiToWide( hb_parc( 1 ) );
LPWSTR cProxyName = AnsiToWide( hb_parc( 3 ) );
LPWSTR cProxyBypass = AnsiToWide( hb_parc( 4 ) );
HINTERNET hInternet = InternetOpen( cAgent, hb_parnl( 2 ), cProxyName, cProxyBypass, hb_parnl( 5 ) );
hb_xfree( cAgent );
hb_xfree( cProxyName );
hb_xfree( cProxyBypass );
hb_retnl( ( LONG ) hInternet );
}
HB_FUNC( INTERNETCLOSEHANDLE )
{
hb_retl( InternetCloseHandle( ( HINTERNET ) hb_parnl( 1 ) ) );
}
HB_FUNC( INTERNETCONNECT )
{
LPWSTR cServerName = AnsiToWide( hb_parc( 2 ) );
LPWSTR cUserName = AnsiToWide( hb_parc( 4 ) );
LPWSTR cPassword = AnsiToWide( hb_parc( 5 ) );
HINTERNET hInternet = InternetConnect( ( HINTERNET ) hb_parnl( 1 ), cServerName, ( INTERNET_PORT ) hb_parnl( 3 ), cUserName, cPassword, hb_parnl( 6 ), hb_parnl( 7 ), hb_parnl( 8 ) );
hb_xfree( cServerName );
hb_xfree( cUserName );
hb_xfree( cPassword );
hb_retnl( ( LONG ) hInternet );
}
HB_FUNC( FTPGETFILE )
{
LPWSTR cRemoteFile = AnsiToWide( hb_parc( 2 ) );
LPWSTR cNewFile = AnsiToWide( hb_parc( 3 ) );
hb_retl( FtpGetFile( ( HINTERNET ) hb_parnl( 1 ), cRemoteFile, cNewFile, hb_parl( 4 ), hb_parnl( 5 ), hb_parnl( 6 ), hb_parnl( 7 ) ) );
hb_xfree( cRemoteFile );
hb_xfree( cNewFile );
}
HB_FUNC( FTPPUTFILE )
{
LPWSTR cLocalFile = AnsiToWide( hb_parc( 2 ) );
LPWSTR cNewRemoteFile = AnsiToWide( hb_parc( 3 ) );
hb_retl( FtpPutFile( ( HINTERNET ) hb_parnl( 1 ), cLocalFile, cNewRemoteFile, hb_parnl( 4 ), hb_parnl( 5 ) ) );
hb_xfree( cLocalFile );
hb_xfree( cNewRemoteFile );
}
#pragma ENDDUMP
Saludos...
Elías Torres.
#include "Fwce.ch"
//
// File attributes
//
#define FILE_ATTRIBUTE_READONLY 1
#define FILE_ATTRIBUTE_HIDDEN 2
#define FILE_ATTRIBUTE_SYSTEM 4
#define FILE_ATTRIBUTE_DIRECTORY 16
#define FILE_ATTRIBUTE_ARCHIVE 32
#define FILE_ATTRIBUTE_NORMAL 128
#define FILE_ATTRIBUTE_TEMPORARY 256
//
// access types for InternetOpen()
//
#define INTERNET_OPEN_TYPE_PRECONFIG 0 // use registry configuration
#define INTERNET_OPEN_TYPE_DIRECT 1 // direct to net
#define INTERNET_OPEN_TYPE_PROXY 3 // via named proxy
#define INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY 4 // prevent using java/script/INS
//
// manifests
//
#define INTERNET_INVALID_PORT_NUMBER 0 // use the protocol-specific default
#define INTERNET_DEFAULT_FTP_PORT 21 // default for FTP servers
#define INTERNET_DEFAULT_GOPHER_PORT 70 // " " gopher "
#define INTERNET_DEFAULT_HTTP_PORT 80 // " " HTTP "
#define INTERNET_DEFAULT_HTTPS_PORT 443 // " " HTTPS "
#define INTERNET_DEFAULT_SOCKS_PORT 1080 // default for SOCKS firewall servers.
//
// service types for InternetConnect()
//
#define INTERNET_SERVICE_FTP 1
#define INTERNET_SERVICE_GOPHER 2
#define INTERNET_SERVICE_HTTP 3
//
// flags for FTP
//
#define INTERNET_FLAG_TRANSFER_ASCII 1
#define INTERNET_FLAG_TRANSFER_BINARY 2
FUNCTION MAIN()
LOCAL oWnd
PUBLIC server:="ftp://ipftp"+space(15)
PUBLIC user:="usuario"+space(15)
PUBLIC pass:="pass"+space(15)
PUBLIC loc_archivo:=curdir()+"\users.bmp"+space(15)
PUBLIC rem_archivo:="users.bmp"+space(40)
PUBLIC lSobreescribir:=.T.
PUBLIC lBinary:=.T.
DEFINE WINDOW oWND TITLE "Prueba FTP"
#DEFINE margen_derecho 5
#DEFINE largo_say 100
#DEFINE largo_get 130
#DEFINE ancho 20
#DEFINE separacion_entre_lineas ancho+10
** SERVIDOR:
#DEFINE oSay1 oWND:aControls[1]
@10,margen_derecho SAY "Servidor: " SIZE largo_say, ancho PIXEL OF oWND
@ oSay1:ntop, oSay1:nRight+1 GET server SIZE largo_get, ancho PIXEL OF oWnd
** USER:
#DEFINE oSay2 oWnd:aControls[3]
@ oSay1:nTop+separacion_entre_lineas, margen_derecho SAY "User:" SIZE largo_say, ancho PIXEL OF oWnd
@ oSay2:nTop, oSay2:nRight+1 GET user SIZE largo_get,ancho PIXEL OF oWnd
** PASS:
#DEFINE oSay3 oWnd:aControls[5]
@ oSay2:nTop+separacion_entre_lineas, margen_derecho SAY "Password:" SIZE largo_say, ancho PIXEL OF oWnd
@ oSay3:nTop, oSay3:nRight+1 GET pass SIZE largo_get,ancho PIXEL OF oWnd
* ARCHIVO LOCAL:
#DEFINE oSay4 oWnd:aControls[7]
@ oSay3:nTop+separacion_entre_lineas, margen_derecho SAY "Archivo local:" SIZE largo_say, ancho PIXEL OF oWnd
@ oSay4:nTop, oSay4:nRight+1 GET loc_archivo SIZE largo_get,ancho PIXEL OF oWnd
* ARCHIVO REMOTO:
#DEFINE oSay5 oWnd:aControls[9]
@ oSay4:nTop+separacion_entre_lineas, margen_derecho SAY "Archivo Remoto:" SIZE largo_say, ancho PIXEL OF oWnd
@ oSay5:nTop, oSay5:nRight+1 GET rem_archivo SIZE largo_get,ancho PIXEL OF oWnd
* ENVIAR
#DEFINE oButton1 oWnd:aControls[11]
@ oSay5:nTop+separacion_entre_lineas, margen_derecho+10 BUTTON "Enviar" SIZE 50, ancho PIXEL ACTION msginfo(enviar()) OF oWnd
* TRAER
#DEFINE oButton2 oWnd:aControls[12]
@ oButton1:nTop, oButton1:nRight+20 BUTTON "Traer" SIZE 50, ancho PIXEL ACTION msginfo(traer()) OF oWnd
* SOBREESCRIBIR
#DEFINE oChk1 oWnd:aControls[13]
@ oButton1:nTop+separacion_entre_lineas, margen_derecho CHECKBOX lSobreescribir PROMPT "Sobreescribir" SIZE 150, ancho PIXEL OF oWnd
* BINARY
#DEFINE oChk2 oWnd:aControls[14]
@ oChk1:nTop+separacion_entre_lineas, margen_derecho CHECKBOX lBinary PROMPT "Transferencia Binaria" SIZE 150, ancho PIXEL OF oWnd
ACTIVATE WINDOW oWND
RETURN NIL
FUNCTION Enviar()
LOCAL nRet
LOCAL hInternet, hConnect
hInternet = INTERNETOPEN( "Anystring", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0 )
hConnect = INTERNETCONNECT(hInternet, rtrim(server), INTERNET_INVALID_PORT_NUMBER, rtrim(user), rtrim(pass), INTERNET_SERVICE_FTP, 0, 0 )
IF FTPPUTFILE( hConnect, rtrim(loc_archivo), rtrim(rem_archivo),iif(lBinary,INTERNET_FLAG_TRANSFER_BINARY,INTERNET_FLAG_TRANSFER_ASCII), 0 )
nRet:=0
ELSE
nRet:=GetLAstError()
ENDIF
INTERNETCLOSEHANDLE( hConnect )
INTERNETCLOSEHANDLE( hInternet )
RETURN nRet
FUNCTION Traer()
LOCAL nRet
LOCAL hInternet, hConnect
hInternet = INTERNETOPEN( "Anystring", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0 )
hConnect = INTERNETCONNECT(hInternet, rtrim(server), INTERNET_INVALID_PORT_NUMBER, rtrim(user), rtrim(pass), INTERNET_SERVICE_FTP, 0, 0 )
IF FTPGETFILE( hConnect, rtrim(rem_archivo), rtrim(loc_archivo), IIF( lSobreescribir,0,1), FILE_ATTRIBUTE_ARCHIVE, 0, 0 )
nRet:=0
ELSE
nRet:=GetLAstError()
ENDIF
INTERNETCLOSEHANDLE( hConnect )
INTERNETCLOSEHANDLE( hInternet )
RETURN nRet
#pragma BEGINDUMP
#include "windows.h"
#include "wininet.h"
#include "hbapi.h"
LPWSTR AnsiToWide( LPSTR );
HB_FUNC( INTERNETOPEN )
{
LPWSTR cAgent = AnsiToWide( hb_parc( 1 ) );
LPWSTR cProxyName = AnsiToWide( hb_parc( 3 ) );
LPWSTR cProxyBypass = AnsiToWide( hb_parc( 4 ) );
HINTERNET hInternet = InternetOpen( cAgent, hb_parnl( 2 ), cProxyName, cProxyBypass, hb_parnl( 5 ) );
hb_xfree( cAgent );
hb_xfree( cProxyName );
hb_xfree( cProxyBypass );
hb_retnl( ( LONG ) hInternet );
}
HB_FUNC( INTERNETCLOSEHANDLE )
{
hb_retl( InternetCloseHandle( ( HINTERNET ) hb_parnl( 1 ) ) );
}
HB_FUNC( INTERNETCONNECT )
{
LPWSTR cServerName = AnsiToWide( hb_parc( 2 ) );
LPWSTR cUserName = AnsiToWide( hb_parc( 4 ) );
LPWSTR cPassword = AnsiToWide( hb_parc( 5 ) );
HINTERNET hInternet = InternetConnect( ( HINTERNET ) hb_parnl( 1 ), cServerName, ( INTERNET_PORT ) hb_parnl( 3 ), cUserName, cPassword, hb_parnl( 6 ), hb_parnl( 7 ), hb_parnl( 8 ) );
hb_xfree( cServerName );
hb_xfree( cUserName );
hb_xfree( cPassword );
hb_retnl( ( LONG ) hInternet );
}
HB_FUNC( FTPGETFILE )
{
LPWSTR cRemoteFile = AnsiToWide( hb_parc( 2 ) );
LPWSTR cNewFile = AnsiToWide( hb_parc( 3 ) );
hb_retl( FtpGetFile( ( HINTERNET ) hb_parnl( 1 ), cRemoteFile, cNewFile, hb_parl( 4 ), hb_parnl( 5 ), hb_parnl( 6 ), hb_parnl( 7 ) ) );
hb_xfree( cRemoteFile );
hb_xfree( cNewFile );
}
HB_FUNC( FTPPUTFILE )
{
LPWSTR cLocalFile = AnsiToWide( hb_parc( 2 ) );
LPWSTR cNewRemoteFile = AnsiToWide( hb_parc( 3 ) );
hb_retl( FtpPutFile( ( HINTERNET ) hb_parnl( 1 ), cLocalFile, cNewRemoteFile, hb_parnl( 4 ), hb_parnl( 5 ) ) );
hb_xfree( cLocalFile );
hb_xfree( cNewRemoteFile );
}
#pragma ENDDUMP
Saludos...
Elías Torres.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
-
- Posts: 233
- Joined: Wed Aug 09, 2006 3:07 pm
Hola..
Antonio al final he solucionado el tema del ftp. He cogido otro ejemplo del foro y me funciona correctamente. Viendo el funcionamiento del ftp al que se le pasa la direccion ip, el usuario y la contraseña se me ha ocurrido si existe alguna funcion que haga ese uso a la hora de coger un archivo desde otra maquina....
Yo el archivo desde otra maquina lo uso asi:
USE ("\\maquina\path\archivo.dbf") share
Lo que pasa es que cada vez que entro me pide el usuario y la contraseña que tiene el equipo... Se puede pasar por parametros a alguna funcion para que haga la validacion sobre la marcha???
Gracias a todos lo que poneis ejemplos en el foro, nos sirven de mucho..
Saludos.
Elías Torres.
Antonio al final he solucionado el tema del ftp. He cogido otro ejemplo del foro y me funciona correctamente. Viendo el funcionamiento del ftp al que se le pasa la direccion ip, el usuario y la contraseña se me ha ocurrido si existe alguna funcion que haga ese uso a la hora de coger un archivo desde otra maquina....
Yo el archivo desde otra maquina lo uso asi:
USE ("\\maquina\path\archivo.dbf") share
Lo que pasa es que cada vez que entro me pide el usuario y la contraseña que tiene el equipo... Se puede pasar por parametros a alguna funcion para que haga la validacion sobre la marcha???
Gracias a todos lo que poneis ejemplos en el foro, nos sirven de mucho..
Saludos.
Elías Torres.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
-
- Posts: 233
- Joined: Wed Aug 09, 2006 3:07 pm
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact: