PHP의 ftp_put 작업이 실패했습니다.
P粉884548619
2023-08-24 22:05:13
<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>
이 방법은 다음과 같습니다.
으아아아는
으아악ftp_put
(或任何其他传输命令,如ftp_get
、ftp_nlist
、ftp_rawlist
、ftp_mlsd
)出现问题的最常见原因是PHP默认为主动模式。在99%的情况下,需要切换到被动模式才能使传输正常工作。使用ftp_pasv
기능으로 연결됩니다.ftp_pasv
必须在ftp_login
이후에 호출되었습니다. 이전에 호출해도 아무런 효과가 없습니다.참조:
또한 FTP 서버가
으아악PASV
명령에 응답할 때 잘못된 IP 주소를 보고하는 경우(서버가 방화벽/NAT 뒤에 있는 경우 매우 일반적임) 다음을 사용하여 문제를 해결해야 할 수도 있습니다.PHP FTP + NAT 뒤에 있는 수동 FTP 서버를 참조하세요.
이 경우 올바른 해결책은 서버를 수정하는 것입니다.