2011-04-19 81 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說)