首頁  >  文章  >  後端開發  >  如何克服使用 ftp_put 進行 FTP 上傳的令人沮喪的失敗?

如何克服使用 ftp_put 進行 FTP 上傳的令人沮喪的失敗?

Barbara Streisand
Barbara Streisand原創
2024-10-24 04:15:30581瀏覽

How to Overcome the Frustrating Failure of FTP Upload with ftp_put?

FTP 上傳失敗故障排除:解決ftp_put 之謎

儘管建立了安全的FTP 連接,但神秘的ftp_put 函數仍然沒有響應,阻礙了您的XML 檔案已成功傳輸到遠端伺服器。讓我們深入研究這個令人困惑的問題並找出其難以捉摸的解決方案。

罪魁禍首通常在於 PHP 對主動 FTP 模式的預設偏好。然而,被動模式在絕大多數情況下成為了救世主。要解決這個困境,請呼叫萬能的 ftp_pasv 函數。

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

請記住,ftp_pasv 的呼叫必須在成功的 ftp_login 呼叫之後進行。先發制人的嘗試將被證明是徒勞無功的。

當 FTP 伺服器回應 PASV 指令傳回錯誤的 IP 位址時,就會出現另一個潛在障礙。不幸的是,這種異常現像在隱藏在防火牆或 NAT 後面的伺服器中很常見。採取以下解決方法可能會緩解此問題:

<code class="php">ftp_set_option($connect, FTP_USEPASVADDRESS, false);</code>

雖然此解決方法提供了暫時的喘息機會,但最終的解決方案在於解決伺服器上的根本問題。

請記住這句明智的格言:預防勝於治療。在這種情況下,確保 FTP 伺服器在其 PASV 回應中可靠地報告正確的 IP 位址至關重要。

以上是如何克服使用 ftp_put 進行 FTP 上傳的令人沮喪的失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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