首頁  >  文章  >  後端開發  >  PHP中使用ftp_put進行FTP檔案傳輸失敗,是否是FTP模式設定不當導致的?

PHP中使用ftp_put進行FTP檔案傳輸失敗,是否是FTP模式設定不當導致的?

Linda Hamilton
Linda Hamilton原創
2024-10-23 21:16:02975瀏覽

When an FTP File Transfer with ftp_put Fails in PHP, Is It Caused by FTP Mode Improperly Set?

PHP 中的ftp_put 故障排除

問題:

問題:

嘗試上傳和XML 文件時使用PHP 中的ftp_put 函數到FTP 伺服器,操作失敗,回傳false。

原因:

ftp_put 失敗的一個常見原因是 PHP 預設使用主動FTP模式,由於防火牆或網路限制,此模式通常與許多FTP伺服器不相容。切換到被動模式通常可以解決此問題。

解決方案:
<code class="php">$connect = ftp_connect($ftp) or die("Unable to connect to host");
ftp_login($connect, $username, $pwd) or die("Authorization failed");

// Turn passive mode on
ftp_pasv($connect, true) or die("Unable to switch to passive mode");</code>

要在PHP 切換到被動模式,請在建立FTP 連接後使用ftp_pasv 函數:

  • 其他注意事項:
確保在呼叫ftp_pasv 之前呼叫ftp_login 函式。否則不會有任何效果。
<code class="php">ftp_set_option($connect, FTP_USEPASVADDRESS, false);</code>
    如果FTP 伺服器回應PASV 指令回報錯誤的IP 位址,請考慮使用下列選項:
請注意,如果FTP 伺服器的設定或防火牆設定導致問題,切換到被動模式可能還不夠。在這種情況下,請諮詢伺服器管理員以確定根本原因並實施必要的修復。

以上是PHP中使用ftp_put進行FTP檔案傳輸失敗,是否是FTP模式設定不當導致的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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