📄 cls.ftp_service.openinternet.htm
字号:
<span class='PDMResK'>ENDIF</span>
<span class='PDMOper'>=</span><span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>CloseInternet</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span>
<span class='PDMResK'>ENDIF</span>
<span class='PDMResK'>RELEASE</span> <span class='PDMResK'>PROCEDURE</span> <span class='PDMVar'>ftp</span><span class='PDMOper'>.</span><span class='PDMVar'>prg</span></pre>
<!-- Code End -->
<h4>Using array value</h4>
<!-- Code Begin -->
<pre class="PDMCODE PDMNor" >
<span class='PDMOper'>#</span><span class='PDMResK'>INCLUDE</span> <span class='PDMStr'>"ftp.h"</span>
<span class='PDMResK'>LOCAL</span> <span class='PDMVar'>loFTP</span>
<span class='PDMResK'>LOCAL</span> <span class='PDMResK'>ARRAY</span> <span class='PDMVar'>laFlags</span><span class='PDMOper'>(</span><span class='PDMVar'>_FTPS_FA_MaxSize</span><span class='PDMOper'>)</span>
<span class='PDMVar'>laFlags</span><span class='PDMOper'>(</span><span class='PDMVar'>_FTPS_FA_Default</span><span class='PDMOper'>)</span><span class='PDMOper'>=</span><span class='PDMLit'>0</span>
<span class='PDMVar'>laFlags</span><span class='PDMOper'>(</span><span class='PDMVar'>_FTPS_FA_AccessType</span><span class='PDMOper'>)</span><span class='PDMOper'>=</span><span class='PDMVar'>INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY</span>
<span class='PDMResK'>SET</span> <span class='PDMResK'>PROCEDURE</span> <span class='PDMResK'>TO</span> <span class='PDMVar'>ftp</span><span class='PDMOper'>.</span><span class='PDMVar'>prg</span> <span class='PDMResK'>ADDITIVE</span>
<span class='PDMVar'>loFTP</span><span class='PDMOper'>=</span><span class='PDMResF'>CREATEOBJECT</span><span class='PDMOper'>(</span><span class='PDMStr'>'ftp_service'</span><span class='PDMOper'>)</span>
<span class='PDMResK'>IF</span> <span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>OpenInternet</span><span class='PDMOper'>(</span><span class='PDMStr'>"ABONNE"</span><span class='PDMOper'>,</span> <span class='PDMStr'>"PWD"</span><span class='PDMOper'>,</span> <span class='PDMStr'>"10.10.10.10"</span><span class='PDMOper'>,</span> <span class='PDMStr'>"21"</span><span class='PDMOper'>,</span><span class='PDMOper'>@</span><span class='PDMVar'>laFlags</span><span class='PDMOper'>)</span>
<span class='PDMResK'>IF</span> <span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>GetFTPFile</span><span class='PDMOper'>(</span><span class='PDMStr'>"any.txt"</span><span class='PDMOper'>,</span><span class='PDMStr'>"local.txt"</span><span class='PDMOper'>)</span>
<span class='PDMOper'>?</span><span class='PDMResF'>STRTRAN</span><span class='PDMOper'>(</span><span class='PDMStr'>"File %File% downloaded"</span><span class='PDMOper'>,</span><span class='PDMStr'>"%File%"</span><span class='PDMOper'>,</span><span class='PDMStr'>"local.txt"</span><span class='PDMOper'>)</span>
<span class='PDMResK'>ELSE</span>
<span class='PDMOper'>?</span><span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>GetExtendedErrorCode</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span><span class='PDMOper'>,</span><span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>GetExtendedErrorMsg</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span>
<span class='PDMResK'>ENDIF</span>
<span class='PDMOper'>=</span><span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>CloseInternet</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span>
<span class='PDMResK'>ENDIF</span>
<span class='PDMResK'>RELEASE</span> <span class='PDMResK'>PROCEDURE</span> <span class='PDMVar'>ftp</span><span class='PDMOper'>.</span><span class='PDMVar'>prg</span></pre>
<!-- Code End -->
</div>
</div><!-- Example End -->
<div class="PDM_AB_SeeAlso"><!-- SeeAlso Begin -->
<span class="PDM_AB_Head">
See also
</span>
<div class="PDM_AB_Body">
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.loadapifuncs.htm" title="Skip to method FTP_SERVICE::LoadAPIFuncs()">FTP_SERVICE::LoadAPIFuncs()</a> |
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.getextendederror.htm" title="Skip to method FTP_SERVICE::GetExtendedError()">FTP_SERVICE::GetExtendedError()</a> |
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.openftpconnection.htm" title="Skip to method FTP_SERVICE::OpenFTPConnection()">FTP_SERVICE::OpenFTPConnection()</a> |
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.closeftpconnection.htm" title="Skip to method FTP_SERVICE::CloseFTPConnection()">FTP_SERVICE::CloseFTPConnection()</a> |
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.closeinternet.htm" title="Skip to method FTP_SERVICE::CloseInternet()">FTP_SERVICE::CloseInternet()</a>
</div><!-- Body End -->
<!--- "Applies to" need to be inserted here---->
<PlaceAppliesTo_Here />
<!--- /"Applies to" need to be inserted here---->
</div><!-- SeeAlso End -->
<!-- /Created with _diamp_pdm_ab by Agnes Beste 03.09.2007 19:34 -->
<div class="SC">
<img onclick="ExpandSC('SP_1',-1);"class="imgEC" src="../../imgs/uptab.gif" alt="Expand/Collapse source code of procedure OpenInternet" id="IMG_SP_1" />
<span ondblclick="ExpandSC('SP_1',-1);" class="SCCaption"><a name="FTP_SERVICE">Source Code</a></span>
<div ondblclick="ExpandSC('SP_1',-1);" class="SCE" id="TX_SP_1">
<!-- Code Begin -->
<pre class="PDMCODE PDMNor" ><span class='PDMResK'>LPARAMETERS</span> <span class='PDMVar'>INP</span> <span class='PDMVar'>lcUserName</span><span class='PDMOper'>,</span> <span class='PDMVar'>INP</span> <span class='PDMVar'>lcPassword</span><span class='PDMOper'>,</span><span class='PDMVar'>INP</span> <span class='PDMVar'>lcIPAddress</span><span class='PDMOper'>,</span> <span class='PDMVar'>INP</span> <span class='PDMVar'>lcPort</span><span class='PDMOper'>,</span> <span class='PDMVar'>OPT_INP</span> <span class='PDMVar'>lnFlag</span>
<span class='PDMResK'>LOCAL</span> <span class='PDMVar'>lnPCount</span><span class='PDMOper'>,</span> <span class='PDMVar'>fResult</span><span class='PDMOper'>,</span><span class='PDMVar'>lnConnectHandle</span><span class='PDMOper'>,</span><span class='PDMVar'>liAccessType</span><span class='PDMOper'>,</span><span class='PDMVar'>lcProxyBypass</span><span class='PDMOper'>,</span><span class='PDMVar'>lcProxyName</span>
<span class='PDMCom'> * Check Passed Parameters</span>
<span class='PDMVar'>lnPCount</span> <span class='PDMOper'>=</span> <span class='PDMResF'>PCOUNT</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span>
<span class='PDMResK'>IF</span> <span class='PDMVar'>lnPCount</span> <span class='PDMOper'><</span> <span class='PDMLit'>4</span>
<span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>nResult_Code</span> <span class='PDMOper'>=</span> <span class='PDMVar'>ERROR_INTERNET_BAD_OPTION_LENGTH</span>
<span class='PDMResK'>RETURN</span> <span class='PDMLit'>.F.</span>
<span class='PDMResK'>ENDIF</span>
<span class='PDMVar'>lnFlag</span><span class='PDMOper'>=</span><span class='PDMResF'>IIF</span><span class='PDMOper'>(</span><span class='PDMVar'>lnPCount</span><span class='PDMOper'><</span><span class='PDMLit'>5</span><span class='PDMOper'>,</span><span class='PDMLit'>0</span><span class='PDMOper'>,</span><span class='PDMVar'>lnFlag</span><span class='PDMOper'>)</span>
<span class='PDMCom'> * Make sure parameters are of the correct type</span>
<span class='PDMResK'>IF</span> <span class='PDMOper'>(</span><span class='PDMResF'>TYPE</span><span class='PDMOper'>(</span><span class='PDMStr'>"lcUserName"</span><span class='PDMOper'>)</span> <span class='PDMOper'>!</span><span class='PDMOper'>=</span> <span class='PDMStr'>"C"</span><span class='PDMOper'>)</span> <span class='PDMOper'>OR</span> <span class='PDMOper'>;</span>
<span class='PDMOper'>(</span><span class='PDMResF'>TYPE</span><span class='PDMOper'>(</span><span class='PDMStr'>"lcPassword"</span><span class='PDMOper'>)</span> <span class='PDMOper'>!</span><span class='PDMOper'>=</span> <span class='PDMStr'>"C"</span><span class='PDMOper'>)</span> <span class='PDMOper'>OR</span> <span class='PDMOper'>;</span>
<span class='PDMOper'>(</span><span class='PDMResF'>TYPE</span><span class='PDMOper'>(</span><span class='PDMStr'>"lcIPAddress"</span><span class='PDMOper'>)</span> <span class='PDMOper'>!</span><span class='PDMOper'>=</span> <span class='PDMStr'>"C"</span><span class='PDMOper'>)</span> <span class='PDMOper'>OR</span> <span class='PDMOper'>;</span>
<span class='PDMOper'>(</span><span class='PDMResF'>TYPE</span><span class='PDMOper'>(</span><span class='PDMStr'>"lcPort"</span><span class='PDMOper'>)</span> <span class='PDMOper'>!</span><span class='PDMOper'>=</span> <span class='PDMStr'>"C"</span><span class='PDMOper'>)</span>
<span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>nResult_Code</span> <span class='PDMOper'>=</span> <span class='PDMVar'>ERROR_INVALID_PARAMETER</span>
<span class='PDMResK'>RETURN</span> <span class='PDMLit'>.F.</span>
<span class='PDMResK'>ENDIF</span>
<span class='PDMOper'>*</span> <span class='PDMResK'>Check</span> <span class='PDMResK'>Parameter</span> <span class='PDMResK'>Values</span>
<span class='PDMResK'>IF</span> <span class='PDMResF'>EMPTY</span><span class='PDMOper'>(</span><span class='PDMVar'>lcUserName</span><span class='PDMOper'>)</span> <span class='PDMOper'>OR</span> <span class='PDMResF'>EMPTY</span><span class='PDMOper'>(</span><span class='PDMVar'>lcPassword</span><span class='PDMOper'>)</span> <span class='PDMOper'>OR</span> <span class='PDMResF'>EMPTY</span><span class='PDMOper'>(</span><span class='PDMVar'>lcIPAddress</span><span class='PDMOper'>)</span>
<span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>nResult_Code</span> <span class='PDMOper'>=</span> <span class='PDMVar'>ERROR_INVALID_PARAMETER</span>
<span class='PDMResK'>RETURN</span> <span class='PDMLit'>.F.</span>
<span class='PDMResK'>ENDIF</span>
<span class='PDMResK'>IF</span> <span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>LoadAPIFuncs</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span> <span class='PDMOper'>!</span><span class='PDMOper'>=</span> <span class='PDMVar'>ERROR_SUCCESS</span>
<span class='PDMResK'>RETURN</span> <span class='PDMLit'>.F.</span>
<span class='PDMResK'>ENDIF</span>
<span class='PDMCom'> * Open Handle to Internet</span>
<span class='PDMCom'> * Set Parameters</span>
<span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>cUserName</span> <span class='PDMOper'>=</span> <span class='PDMVar'>lcUserName</span> <span class='PDMOper'>+</span> <span class='PDMVar'>cNULL</span> <span class='PDMCom'>&& Store FTP Connection information</span>
<span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>cPassword</span> <span class='PDMOper'>=</span> <span class='PDMVar'>lcPassword</span> <span class='PDMOper'>+</span> <span class='PDMVar'>cNULL</span>
<span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>cIPAddress</span> <span class='PDMOper'>=</span> <span class='PDMVar'>lcIPAddress</span> <span class='PDMOper'>+</span> <span class='PDMVar'>cNULL</span>
<span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>cPort</span> <span class='PDMOper'>=</span> <span class='PDMVar'>lcPort</span>
<span class='PDMResK'>IF</span> <span class='PDMResF'>EMPTY</span><span class='PDMOper'>(</span><span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>cProxyHost</span><span class='PDMOper'>)</span> <span class='PDMOper'>OR</span> <span class='PDMResF'>ISNULL</span><span class='PDMOper'>(</span><span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>cProxyHost</span><span class='PDMOper'>)</span>
<span class='PDMVar'>lcProxyName</span> <span class='PDMOper'>=</span> <span class='PDMOper'>.</span><span class='PDMResK'>NULL</span><span class='PDMOper'>.</span>
<span class='PDMVar'>lcProxyBypass</span><span class='PDMOper'>=</span><span class='PDMOper'>.</span><span class='PDMResK'>NULL</span><span class='PDMOper'>.</span>
<span class='PDMVar'>liAccessType</span><span class='PDMOper'>=</span><span class='PDMResF'>IIF</span><span class='PDMOper'>(</span><span class='PDMResF'>TYPE</span><span class='PDMOper'>(</span><span class='PDMStr'>"lnFlag("</span><span class='PDMOper'>+</span><span class='PDMResF'>LTRIM</span><span class='PDMOper'>(</span><span class='PDMResF'>STR</span><span class='PDMOper'>(</span><span class='PDMVar'>_FTPS_FA_AccessType</span><span class='PDMOper'>,</span><span class='PDMLit'>11</span><span class='PDMOper'>)</span><span class='PDMOper'>)</span><span class='PDMOper'>+</span><span class='PDMStr'>")"</span><span class='PDMOper'>)</span><span class='PDMOper'>=</span><span class='PDMStr'>"N"</span><span class='PDMOper'>,</span><span class='PDMVar'>lnFlag</span><span class='PDMOper'>(</span><span class='PDMVar'>_FTPS_FA_AccessType</span><span class='PDMOper'>)</span><span class='PDMOper'>,</span><span class='PDMVar'>INTERNET_OPEN_TYPE_DIRECT</span><span class='PDMOper'>)</span>
<span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>lUseProxy</span> <span class='PDMOper'>=</span> <span class='PDMLit'>.F.</span>
<span class='PDMResK'>ELSE</span>
<span class='PDMCom'> *protocol=proxyhost:proxyport</span>
<span class='PDMCom'> *ftp=ftp://ftp_proxy_name:21 </span>
<span class='PDMVar'>lcProxyName</span> <span class='PDMOper'>=</span> <span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>cProxyProtocol</span><span class='PDMOper'>+</span><span class='PDMStr'>"="</span><span class='PDMOper'>+</span> <span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>cProxyHost</span> <span class='PDMOper'>+</span> <span class='PDMStr'>":"</span> <span class='PDMOper'>+</span> <span class='PDMResF'>ALLTRIM</span><span class='PDMOper'>(</span><span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>cProxyport</span><span class='PDMOper'>)</span> <span class='PDMOper'>+</span> <span class='PDMVar'>cNULL</span>
<span class='PDMVar'>lcProxyBypass</span><span class='PDMOper'>=</span><span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>cIPAddress</span>
<span class='PDMVar'>liAccessType</span><span class='PDMOper'>=</span><span class='PDMVar'>INTERNET_OPEN_TYPE_PROXY</span>
<span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>lUseProxy</span> <span class='PDMOper'>=</span> <span class='PDMLit'>.T.</span>
<span class='PDMResK'>ENDIF</span>
<span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>nInet_Handle</span> <span class='PDMOper'>=</span> <span class='PDMVar'>InternetOpen</span><span class='PDMOper'>(</span><span class='PDMOper'>(</span><span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>cAgent</span><span class='PDMOper'>)</span><span class='PDMOper'>,</span> <span class='PDMVar'>liAccessType</span><span class='PDMOper'>,</span> <span class='PDMOper'>@</span><span class='PDMVar'>lcProxyName</span><span class='PDMOper'>,</span> <span class='PDMOper'>@</span><span class='PDMVar'>lcProxyBypass</span><span class='PDMOper'>,</span><span class='PDMVar'>lnFlag</span><span class='PDMOper'>)</span>
<span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>GetExtendedError</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span>
<span class='PDMCom'> * Unable to Get a Connection into the Internet</span>
<span class='PDMResK'>IF</span> <span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>nInet_Handle</span> <span class='PDMOper'>=</span> <span class='PDMLit'>0</span>
<span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>CloseFTPConnection</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span>
<span class='PDMResK'>RETURN</span> <span class='PDMLit'>.F.</span>
<span class='PDMResK'>ENDIF</span>
<span class='PDMCom'> * This Opens the FTP site and Gets the Current Directory. The handle to the FTP site is opened</span>
<span class='PDMCom'> * and closed for each call to any function. </span>
<span class='PDMCom'> * Open FTP Site </span>
<span class='PDMVar'>fResult</span><span class='PDMOper'>=</span><span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>OpenFTPConnection</span><span class='PDMOper'>(</span><span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>cStartupFolder</span><span class='PDMOper'>)</span>
<span class='PDMOper'>=</span><span class='PDMResF'>IIF</span><span class='PDMOper'>(</span><span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>lMultiOperations</span><span class='PDMOper'>,</span><span class='PDMLit'>.T.</span><span class='PDMOper'>,</span><span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>CloseFTPConnection</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span><span class='PDMOper'>)</span> <span class='PDMCom'>&& Close FTP Handle</span>
<span class='PDMResK'>RETURN</span> <span class='PDMVar'>fResult</span></pre>
<!-- Code End -->
</div>
</div>
</div>
<div class="diaxp_mfoot"> <div class="PDM_AB_CopyRight"><!-- Footer Begin -->
<hr />
<div class="PDM_AB_Body">
© 2007-03-04 Robert Abram, © 24.11.2005 Martina Jindrú
</div><!-- Body End -->
</div><!-- Footer End -->
</div>
<script language="JavaScript" type="text/javascript">
lo=document.getElementById("TX_SP_1");
lo.XType="SourceCode";
lo.Dir="../../imgs/";
</script>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -