失敗した 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 呼び出しの後に行う必要があることに注意してください。先制攻撃は無駄であることがわかります。
PASV コマンドに応答して FTP サーバーが誤った IP アドレスを返す場合、別の潜在的な障害が発生します。残念ながら、この異常はファイアウォールや NAT の背後に隠されたサーバーで蔓延しています。次の回避策に頼ると、この問題が軽減される可能性があります。
<code class="php">ftp_set_option($connect, FTP_USEPASVADDRESS, false);</code>
この回避策は一時的な休息を提供しますが、最終的な解決策はサーバー上の根本的な問題に対処することにあります。
次のような賢明な格言を覚えておいてください。予防は治療よりも優れています。この文脈では、FTP サーバーが PASV 応答で正しい IP アドレスを確実に報告することが最も重要です。
以上がftp_put を使用した FTP アップロードのイライラする失敗を克服するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。