>백엔드 개발 >PHP 문제 >php ftp_put 업로드에 실패하면 어떻게 해야 할까요?

php ftp_put 업로드에 실패하면 어떻게 해야 할까요?

藏色散人
藏色散人원래의
2020-08-22 09:36:413476검색

php ftp_put 업로드는 서버가 방화벽 뒤에 있기 때문에 실패합니다. 해결 방법은 "ftp_put($conn,"target.rar","local.rar",FTP_BINARY,0)과 같은 코드를 사용하여 FTP 수동 모드를 활성화하는 것입니다. ;".

php ftp_put 업로드에 실패하면 어떻게 해야 할까요?

권장 사항: "PHP 비디오 튜토리얼"

클라이언트가 방화벽 뒤에 있으며 PHP가 ftp를 사용하여 파일을 업로드할 때 ftp_put이 실패합니다

<?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";
?>

코드 설명:

이 코드는 백그라운드에서 FTP 프로토콜을 사용합니다. PHP 서버를 통해 로컬 파일 "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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.