2011-04-19 72 views
2

我有一些代码使用PHP cURL库通过FTP上传一些文件。在PHP中设置FTP模式cURL

我被告知将FTP模式从被动模式切换到主动模式,但我找不到如何做到这一点 - 在文档中似乎没有相关的选项。我不确定它目前使用的是什么模式,或者我如何看待它。

+1

有活动/通过连接的CURLOPT_FTP_USE_EPRT和CURLOPT_FTP_USE_EPSV。 – 2011-04-19 16:00:35

回答

5

回答这个问题是使用:

$curl = curl_init() 
curl_setopt($curl, CURLOPT_FTP_USE_EPRT, true); 

这将允许你做主动ftp上传。

-1

你为什么使用cURL? PHP拥有一套FTP功能:

http://php.net/manual/en/book.ftp.php

+1

我已经继承了代码,我没有写它。 – Outspaced 2011-04-19 13:51:31

+0

好的...为什么不重新写它。主动和被动之间的区别不仅仅是端口,而是哪一端启动连接。 阅读更多:http://slacksite.com/other/ftp.html 你能解释更多关于你的潜在问题,以及你为什么试图改变模式? – MetaCipher 2011-04-19 13:59:49

+0

重写是一个选项,但它是最后的手段。我的问题的关键是要找到使用cURL库时是否可以更改FTP模式。我知道使用FTP库时很简单,但如果可以用我已有的方法完成,那么重写就不是正确的解决方案。我需要更改模式,因为我要连接的服务现在只接受活动连接。 – Outspaced 2011-04-19 14:25:40

0

据我了解,被动和主动FTP之间的区别是被动总是使用相同的端口而主动允许客户指定端口的服务器回复上。

来自卷边手册页:

如果你想 你需要使用-P /切换到主动模式 - FTP端口

我认为这相当于设置CURLOPT_FTPPORT选项。

有了这些想法,你会更好使用FTP功能(如MetaCipher说)