php ftp_put アップロードは、サーバーがファイアウォールの内側に配置されているために失敗します。解決策は、「ftp_put($conn,"target.rar","local.rar"」などのコードを使用して FTP パッシブ モードを有効にすることです。 FTP_BINARY,0 );"。
推奨事項: 「PHP ビデオ チュートリアル 」
クライアントはファイアウォールの内側にあり、php は ftp を使用してファイルをアップロードしますwhen ftp_put Failure
<?php $conn = ftp_connect("ftp.bacysoft.cn") or die("Could not connect"); ftp_login($conn,"test","test1234"); ftp_put($conn,"target.rar","local.rar",FTP_BINARY,0); ftp_close($conn); echo "done"; ?>
コードの説明:
このコードは、PHP サーバー経由でバックグラウンドで FTP プロトコルを使用して、ローカル ファイル「local.rar」をリモート FTP ファイル サーバーにアップロードして保存します。 「target.rar」として保存します。つまり、PHP サーバーは FTP クライアントとして機能し、ファイルを FTP サーバーにアップロードします...
上記のコードを実行した後にエラーが発生しました。エラー メッセージは次のとおりです:
Warning: ftp_put() [function.ftp-put]: Opening BINARY mode data connection for target.rar. in E:\wwwroot\bacysoft\wwwroot\test\temp.php on line 4 Fatal error: Maximum execution time of 60 seconds exceeded in E:\wwwroot\bacysoft\wwwroot\test\temp.php on line 5
エラーの理由:
サーバーは通常、ファイアウォールの内側に配置されているため、FTP クライアント プログラムがファイアウォールを通過する必要がある場合は、パッシブ モードを有効にする必要があります。そうしないと、実行時に応答がありません。 「最大実行時間タイムアウト」という致命的なエラーが発生してプログラムが終了するまで、任意の FTP コマンドを実行できません...
ftp_pasv($conn, true);
解決策: FTP パッシブ モードを有効にします。正しいコードは次のとおりです:
<?php $conn = ftp_connect("ftp.bacysoft.cn") or die("Could not connect"); ftp_login($conn,"test","test1234"); ftp_pasv($conn, true); ftp_put($conn,"target.rar","local.rar",FTP_BINARY,0); ftp_close($conn); echo "done"; ?>
以上がphp ftp_put がアップロードに失敗した場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。