Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
FtpGetFile()
Message
 
À
07/02/2006 10:40:44
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Titre:
Versions des environnements
Visual FoxPro:
VFP 8 SP1
OS:
Windows 2000 SP4
Network:
Windows 2000 Pro
Database:
Visual FoxPro
Divers
Thread ID:
01094124
Message ID:
01094286
Vues:
963
Tore,
i have that in there. below i have listed the entire code that i am using, i have pared it down to just the ftp section. I have added in any suggestions that people have put up but i still get NO from the last wait window.
LOCAL FTPgetfile, FTPsavefile, PortNumber, FTPServerName
LOCAL lhInternetConnection, lhFTPFile, lhFTPSession
FTPServerName = "111.222.333.444"
PortNumber = 21
lhInternetConnection = 0000


#DEFINE INTERNET_SERVICE_FTP		1
#DEFINE FTP_TRANSFER_TYPE_ASCII		1
#DEFINE FILE_ATTRIBUTE_NORMAL		128

DECLARE INTEGER InternetOpen ;
	IN         WinInet.dll;
	STRING     lpszAgent,;
	INTEGER    dwAccessType,;
	STRING     lpszProxyName,;
	STRING     lpszProxyBypass,;
	INTEGER    dwFlags

DECLARE INTEGER InternetConnect ;
	IN         WinInet.dll ;
	INTEGER    hIPHandle,;
	STRING     lpszServer,;
	INTEGER    dwPort,;
	STRING     lpszUserName,;
	STRING     lpszPassWord,;
	INTEGER    dwServiceFlags,;
	INTEGER    dwReserved,;
	INTEGER    dwReserved

DECLARE INTEGER InternetCloseHandle;
	IN       WinInet.dll;
	INTEGER  hIPSession

DECLARE INTEGER FtpSetCurrentDirectory;
	IN         WinInet.dll;
	INTEGER    lhFTPSession,;
	STRING     lpszDirectory

DECLARE INTEGER FtpPutFile;
	IN         WinInet.dll;
	INTEGER    hConnect,;
	STRING     lpszSendFileName,;
	STRING     lpszTargetFileName,;
	INTEGER    dwFlags,;
	INTEGER    dwReserved

DECLARE INTEGER InternetCloseHandle ;
	IN         WinInet.dll ;
	INTEGER    hInternet

DECLARE INTEGER FtpOpenFile ;
	IN         WinInet.dll ;
	INTEGER    hIPSession,;
	STRING     @lpszFileName,;
	INTEGER    dwAcessFlags,;
	INTEGER    dwServiceFlags,;
	INTEGER    dwContext

DECLARE INTEGER InternetWriteFile ;
	IN         WinInet.dll ;
	INTEGER    hFTPHandle,;
	STRING     lcBuffer,;
	INTEGER    cbBuffer,;
	INTEGER    @cbBuffer

DECLARE INTEGER InternetSetOption;
	IN        WinInet.dll;
	INTEGER   hIPSession,;
	INTEGER   dwOption,;
	INTEGER   @lpBuffer,;
	LONG      lpdwBufferLength

DECLARE INTEGER GetLastError;
	IN         Win32API

DECLARE INTEGER FtpGetFile IN wininet;
	INTEGER lhFtpSession, STRING lpszRemoteFile,;
	STRING lpszNewFile, INTEGER fFailIfExists,;
	INTEGER dwFlagsAndAttributes,;
	INTEGER dwFlags, INTEGER dwContext


lhInternetConnection = InternetOpen("3G Only Connection", 1, NULL, NULL, 0 )
IF lhInternetConnection = 0
	WAIT WINDOW "problem with internet connection"
	RETURN
ENDIF


* CONNECT TO THE FTP SERVER
lhFTPSession = InternetConnect(;
	lhInternetConnection,;
	FTPServerName,;
	PortNumber,;
	"username1",;
	"password2",;
	INTERNET_SERVICE_FTP,0,0)

IF lhFTPSession = 0
	WAIT WINDOW "problem connecting to server"
	RETURN
ENDIF


lpszRemoteFile = "acupdate.zip" + CHR(0)
lpszNewFile = "d:\kernel\acupdate.zip" + CHR(0)
fFailIfExists = 0 && do not stop if the target already exists
dwContext = 0

lnResult = FtpGetFile(lhFTPSession, lpszRemoteFile, lpszNewFile,;
	fFailIfExists, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_ASCII,;
	dwContext)
	
IF lnResult = 0
	WAIT WINDOW "NO"
ELSE
	WAIT WINDOW "TRANSFER DONE"
ENDIF
>Put these lines first
>#define FTP_TRANSFER_TYPE_ASCII 1
>#DEFINE FILE_ATTRIBUTE_NORMAL         128
>
>>Anatoliy,
>>if i try this then i get an error "variable FTP_TRANSFER_TYPE_ASCII not found". this is my problem with the code, i don't get the error if i enter 0 instead but the code still does not get the file:(
>>Slán
>>~M
>>
>>>This works for me:
>>>
>>>DECLARE INTEGER FtpGetFile IN wininet;
>>>	INTEGER hFtpSession, STRING lpszRemoteFile,;
>>>	STRING lpszNewFile, INTEGER fFailIfExists,;
>>>	INTEGER dwFlagsAndAttributes,;
>>>	INTEGER dwFlags, INTEGER dwContext
>>>
>>>lpszRemoteFile = "somefile.txt"
>>>lpszNewFile = "c:\Temp\somefile.txt"
>>>fFailIfExists = 0 && do not stop if the target already exists
>>>dwContext = 0
>>>
>>>lnResult = FtpGetFile(hFtpSession, lpszRemoteFile, lpszNewFile,;
>>>	fFailIfExists, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_ASCII,;
>>>	dwContext)
>>>
>>>
>>>Complete code (requires membership):
>>>How to download a file from the FTP server using FtpGetFile
>>>http://www.news2news.com/vfp/?example=43&function=66
Go raibh maith agat

~M
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform