首頁 >後端開發 >php教程 >如何使用 PHP ftp_put 解決 FTP 上傳失敗的問題?

如何使用 PHP ftp_put 解決 FTP 上傳失敗的問題?

DDD
DDD原創
2024-10-23 17:47:02653瀏覽

How to Troubleshoot Failed FTP Uploads Using PHP ftp_put?

使用PHP ftp_put 排查FTP 上傳失敗

問題:

問題:

問題:

嘗試使用檔案時使用ftp_put 將XML 檔案傳輸到FTP 伺服器,操作始終失敗並傳回false。

解決方法:
<code class="php">$connect = ftp_connect($ftp) or die("Unable to connect to host");
ftp_login($connect, $username, $pwd) or die("Authorization failed");
ftp_pasv($connect, true) or die("Unable switch to passive mode");</code>

切換到被動FTP 模式:

ftp_put 失敗的最常見原因是PHP 的預設行為,它使用主動FTP 模式。在許多情況下,解決方案是使用 ftp_pasv 函數切換到被動模式。以下是程式碼片段:
<code class="php">ftp_set_option($connect, FTP_USEPASVADDRESS, false);</code>

設定PASV 位址:

  • 如果由於防火牆或NAT,您的FTP 伺服器在回應PASV 命令時報告了不正確的IP 位址使用情況下,您可以透過停用FTP_USEPASVADDRESS 來解決該問題:
  • 其他資源:

[PHP ftp_put 失敗並顯示「警告:ftp_put(): PORT 指令成功"](https://stackoverflow.com/questions/13218988/php-ftp-put-fails-with-warning-ftp-put-port-command-successful)

[主動與被動FTP 連線模式](https://stackoverflow.com/questions/10037230/how-can-i-check-if-passive-ftp-mode-is-enabled-in-php)

[PHP FTP NAT 後面的被動FTP 伺服器](https://stackoverflow.com/questions/3054294/php-ftp-passive-ftp-server-behind-nat) 注意: 要注意的是,ftp_pasv 必須在ftp_login 之後呼叫才能生效。

以上是如何使用 PHP ftp_put 解決 FTP 上傳失敗的問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn