PHP の ftp_put 操作が失敗しました
P粉884548619
P粉884548619 2023-08-24 22:05:13
0
2
712
<p>FTP 経由で XML ファイルをアップロードします。</p> <pre class="brush:php;toolbar:false;">$ftp = "ftp"; $ユーザー名 = "ユーザー名"; $pwd = "パスワード"; $ファイル名 = $_FILES[$xyz][$abc]; $tmp = $_FILES['ファイル']['tmp_name']; $destination = "/Content/EnquiryXML "; $connect = ftp_connect($ftp)or die("ホストに接続できません"); ftp_login($connect,$username,$pwd) または die("認証に失敗しました"); echo "接続されました!
"; if(!$ファイル名) { echo "ファイルを選択してください"; } それ以外 { ftp_put($connect,$destination.'/'.$filename,$tmp,FTP_ASCII)or die("アップロードできません"); echo "ファイルが FTP に正常にアップロードされました"; }</pre> <p><code>DOMDocument</code> を使用して作成した XML ファイルを FTP サーバーに送信したいのですが、送信できません。 </p> <p><code>ftp_put</code> は false を返します。 </p>
P粉884548619
P粉884548619

全員に返信(2)
P粉225961749

これはうまくいきました:

リーリー
いいねを押す +0
P粉056618053

結果は ftp_put (または ftp_getftp_nlistftp_rawlistftp_mlsd## などの他の転送コマンド) # ) 問題の最も一般的な理由は、PHP がデフォルトでアクティブ モードになっていることです。 99% の場合、トランスミッションが適切に動作するにはパッシブ モードに切り替える必要があります。 ftp_pasv関数を使用します。 リーリー

ftp_pasvftp_login の後に呼び出す必要があります。前に呼び出しても効果はありません。

こちらも参照:

  • PHP ftp_put が失敗し、「警告: ftp_put (): PORT コマンドが成功しました」が表示されます。
  • アクティブおよびパッシブ FTP 接続モード に関する私の 記事。
さらに、
PASV

コマンドに応答するときに FTP サーバーが間違った IP アドレスを報告する場合 (サーバーがファイアウォール/NAT の背後にある場合、これは非常に一般的です)、以下を使用してこれを行う必要がある場合があります。解決する:### リーリー 参照PHP FTP パッシブ FTP サーバーは NAT の背後にあります

ただし、この場合の正しい解決策はサーバーを修復することです。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート