Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Downloading Internet files
Message
De
14/02/2007 08:31:49
 
 
Information générale
Forum:
Visual FoxPro
Catégorie:
COM/DCOM et OLE Automation
Divers
Thread ID:
01195397
Message ID:
01195489
Vues:
11
My methods are for HTTP, not FTP.

>Tore,
>
>Would you say that the method you suggested to Jose is better than using FTP download?
>
>
>>>
>>>Regards,
>>
>>Function getfilefromurl
>>  Lparameters lcRemoteFile,lcLocalFile
>>  Local lnReturn
>>  Declare Integer URLDownloadToFile In urlmon.Dll;
>>    INTEGER pCaller, String szURL, String szFileName,;
>>    INTEGER dwReserved, Integer lpfnCB
>>  lnReturn = URLDownloadToFile (0, lcRemoteFile, lcLocalFile, 0, 0)
>>  Return lnReturn=0
>>
>>For larger files, this function is better
>>
>>Function getdatafromurl
>>  Lparameters pcUrlName
>>  Declare Integer InternetOpen In wininet.Dll String sAgent, ;
>>    INTEGER lAccessType, String sProxyName, ;
>>    STRING sProxyBypass, Integer lFlags
>>
>>  Declare Integer InternetOpenUrl In wininet.Dll ;
>>    INTEGER hInternetSession, String sUrl, String sHeaders,;
>>    INTEGER lHeadersLength, Integer lFlags, Integer lContext
>>
>>  Declare Integer InternetReadFile In wininet.Dll Integer hfile, ;
>>    STRING @sBuffer, Integer lNumberofBytesToRead, Integer @lBytesRead
>>
>>  Declare short InternetCloseHandle In wininet.Dll Integer hInst
>>
>>  #Define INTERNET_OPEN_TYPE_PRECONFIG 0
>>  #Define INTERNET_OPEN_TYPE_DIRECT 1
>>  #Define INTERNET_OPEN_TYPE_PROXY 3
>>  #Define SYNCHRONOUS 0
>>  #Define INTERNET_FLAG_RELOAD 2147483648
>>  #Define CR Chr(13)
>>
>>  Local lsAgent, lhInternetSession, lhUrlFile, llOk, lnOk, lcRetVal, lcReadBuffer, lnBytesRead
>>
>>* what application is using Internet services?
>>  lsAgent = "VPF 5.0"
>>
>>  lhInternetSession = InternetOpen( lsAgent, INTERNET_OPEN_TYPE_PRECONFIG, ;
>>    '', '', SYNCHRONOUS)
>>
>>* debugging line - uncomment to see session handle
>>* WAIT WINDOW "Internet session handle: " + LTRIM(STR(hInternetSession))
>>
>>  If lhInternetSession = 0
>>    Wait Window "Internet session cannot be established" Time 2
>>    Return .Null.
>>  Endif
>>
>>  lhUrlFile = InternetOpenUrl( lhInternetSession, pcUrlName, '', 0, ;
>>    INTERNET_FLAG_RELOAD, 0)
>>
>>* debugging line - uncomment to see URL handle
>>* WAIT WINDOW "URL Handle: " + LTRIM(STR(hUrlFile))
>>
>>  If lhUrlFile = 0
>>    Wait Window "URL cannot be opened"
>>    Return .Null.
>>  Endif
>>
>>  lcRetVal = ""
>>  llOk = .T.
>>
>>  Do While llOk
>>* set aside a big buffer
>>    lsReadBuffer = Space(32767)
>>    lnBytesRead = 0
>>    lnOk = InternetReadFile( lhUrlFile, @lsReadBuffer, Len(lsReadBuffer), @lnBytesRead)
>>
>>    If ( lnBytesRead > 0 )
>>      lcRetVal = lcRetVal + Left( lsReadBuffer, lnBytesRead )
>>    Endif
>>
>>* error trap - either a read failure or read past eof()
>>    llOk = ( lnOk = 1 ) And ( lnBytesRead > 0 )
>>  Enddo
>>
>>* close all the handles we opened
>>  InternetCloseHandle( lhUrlFile )
>>  InternetCloseHandle( lhInternetSession )
>>  Clear Dlls InternetOpen,InternetCloseHandle,InternetOpenUrl ,InternetReadFile
>>* return the URL contents
>>Return lcRetVal
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform