>  Q&A  >  본문

PHP의 ftp_put 작업이 실패했습니다.

<p>FTP를 통해 XML 파일을 업로드합니다. </p> <pre class="brush:php;toolbar:false;">$ftp = "ftp"; $username = "사용자 이름"; $pwd = "비밀번호"; $파일이름 = $_FILES[$xyz][$abc]; $tmp = $_FILES['파일']['tmp_name']; $대상 = "/Content/EnquiryXML"; $connect = ftp_connect($ftp)or die("호스트에 연결할 수 없습니다."); ftp_login($connect,$username,$pwd)or die("인증 실패"); echo "연결되었습니다!<br/>"; 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粉884548619P粉884548619394일 전628

모든 응답(2)나는 대답할 것이다

  • P粉225961749

    P粉2259617492023-08-25 18:30:59

    이 방법은 다음과 같습니다.

    으아아아

    회신하다
    0
  • P粉056618053

    P粉0566180532023-08-25 15:46:37

    ftp_put(或任何其他传输命令,如ftp_getftp_nlistftp_rawlistftp_mlsd)出现问题的最常见原因是PHP默认为主动模式。在99%的情况下,需要切换到被动模式才能使传输正常工作。使用ftp_pasv기능으로 연결됩니다.

    으아악

    ftp_pasv必须在ftp_login 이후에 호출되었습니다. 이전에 호출해도 아무런 효과가 없습니다.

    참조:


    또한 FTP 서버가 PASV명령에 응답할 때 잘못된 IP 주소를 보고하는 경우(서버가 방화벽/NAT 뒤에 있는 경우 매우 일반적임) 다음을 사용하여 문제를 해결해야 할 수도 있습니다.

    으아악

    PHP FTP + NAT 뒤에 있는 수동 FTP 서버를 참조하세요.

    이 경우 올바른 해결책은 서버를 수정하는 것입니다.

    회신하다
    0
  • 취소회신하다