2

我需要从此 ftp 服务器 (ftp.cetip.com.br) 获取一个文件,该文件位于目录 /MediaCDI/ 中,名称为“20160412.txt”。

完整地址为ftp://ftp.cetip.com.br/MediaCDI/20160412.txt。这是一个开放的 ftp,但 cfftp 需要用户和密码才能连接。我试着省略它,像这样:

<cfftp  action = "getFile" 
   server="ftp.cetip.com.br"
   remotefile="/MediaCDI/20160412.txt"
   localfile="#Session.wwwrootPath#Temp\cdi.txt">

但这会返回属性错误。

标签 CFFTP 的属性验证错误。
它具有无效的属性组合:操作、本地文件、远程文件、服务器。可能的组合是:

  • 必需属性:“操作、本地文件、密码、远程文件、服务器、用户名”。可选属性:'asciiextensionlist,attributes,buffersize,failifexists,fingerprint,passive,port,proxybypass,proxyserver,result,retrycount,secure,stoponerror,timeout,transfermode'。

  • ……

没有 user 和 pass 怎么办?

更新感谢 Leigh 和 P Mascari。我尝试过这个

<cfftp connection="Myftp"
server="ftp.cetip.com.br"
username = "anonymous"
password="name@email.com" <!--- valid email --->
action="Open"
stoponerror="Yes"
secure="no">
<p>Did it succeed? <cfoutput>#cfftp.succeeded#</cfoutput><br />
<cfflush>

<cfftp connection="Myftp"
action="changedir"
directory="MediaCDI">
changed<br />
<cfflush>

<cfftp connection="Myftp"
action="getFile"
remoteFile="20160412.txt"
localfile="#Session.wwwrootPath#Temp\teste.txt"
timeout="3000">
 done!!<br />
<cfflush>

错误:425 无法建立数据连接:连接超时。我现在的问题在第三部分,我可以匿名连接,更改目录,但操作 getFile 超时。任何想法?

4

2 回答 2

4

您是否尝试发送空白登录名,即用户名=“”密码=“”或“用户名=“匿名”密码=“”?

<cfftp action="getFile" 
       username="anonymous" 
       password=""
       ...>
于 2016-04-13T20:34:15.307 回答
4

尤里卡

我发现了超时的问题。FTP 使用主动 FTP 模式,而应用程序正在等待被动模式 (PASV)。我添加了该行passive ='yes'并且命令有效:)。这是最终代码:

<cfftp 
    connection="Myftp"
    server="ftp.cetip.com.br"
    username = "anonymous"
    password="username@example.com"
    action="Open"
    stoponerror="Yes"
    secure="no">
<p>Did it succeed? <cfoutput>#cfftp.succeeded#</cfoutput><br />
<cfflush>

<cfftp connection="Myftp"
    action="changedir"
    directory="MediaCDI">
changed<br />
<cfflush>

<cfftp connection="Myftp"
    action="getFile"
    remoteFile="20160412.txt"
    localfile="#Session.wwwrootPath#Temp\test.txt"
    timeout="3000"
    passive="yes">
donne<br />
<cfflush>

谢谢您的帮助。

于 2016-04-14T11:55:15.413 回答