2011-04-03 87 views
3

我在PHP腳本中出現奇怪的FTP故障。我只是使用命令行FTP重新創建失敗,所以我認爲我可以從我的查詢中消除PHP。PHP腳本和命令行中的FTP失敗,553,但Filezilla傳輸OK

在Ubuntu 10.10中使用命令行FTP,我可以連接到我的FTP服務器,登錄,列出目錄等。但是,當我嘗試使用「put」將本地計算機上的文件傳輸到FTP服務器時得到一個「553無法創建文件」的錯誤。我在主動和被動模式下得到相同的錯誤。傳輸設置爲二進制。

當我在同一臺計算機上運行FileZilla並使用相同憑據連接到同一FTP服務器並嘗試將同一文件傳輸到同一個目標目錄時,傳輸工作正常,默認爲二進制和被動模式。使用相同細節的PHP腳本(這是一個簡單的ftp_connect,ftp_login和ftp_put)會以「非法PORT命令」失敗,儘管我懷疑這只是PHP對命令行FTP獲得的同樣錯誤的解釋。同樣,主動和被動FTP模式都會發生此錯誤。

+1

你能在Filezilla的日誌中看到什麼嗎? http://wiki.filezilla-project.org/Logs它應該告訴你到底發送了什麼命令,這可能會給出線索發生錯誤的線索。 – 2011-04-03 19:37:37

+0

我會建議在PHP建立在php函數之前捲曲。這是一個非常棒的圖書館。 http://stackoverflow.com/questions/1178425/download-a-file-from-ftp-using-curl-and-php – Teson 2011-04-03 19:43:54

回答

2

FileZilla和ftp命令可能在不同的目錄中啓動。您可以在FileZilla中設置啓動遠程目錄,並且必須從命令行轉到同一位置。

從命令行客戶端登錄後,嘗試使用pwd命令,它會顯示當前工作目錄,將其與FileZilla正在使用的一個進行比較,然後使用cd命令轉到正確的目錄。

相關問題