PHP ftp_put 실패: 문제 분석 및 해결
ftp_put()이 올바르게 작동하지 못하면 전송할 때 실망스러운 문제가 될 수 있습니다. FTP를 통한 파일. PHP에서 이 문제의 일반적인 원인은 활성 모드의 기본 사용에 있습니다.
활성 모드와 수동 모드 전송
활성 모드에서는 FTP 서버가 연결됨을 나타냅니다. 지정된 포트의 클라이언트에. 반면에 패시브 모드에서는 서버가 임의의 포트를 수신하여 클라이언트에 제공합니다. 대부분의 경우, 특히 FTP 서버가 방화벽이나 NAT 뒤에 있는 경우 수동 모드를 사용해야 합니다.
문제 해결
PHP의 FTP 전송을 수동 모드로 전환하려면 모드에서는 ftp_pasv() 함수를 호출해야 합니다:
$connect = ftp_connect($ftp) or die("Unable to connect to host");
ftp_login($connect, $username, $pwd) or die("Authorization failed");
// Switch to passive mode
ftp_pasv($connect, true) or die("Unable switch to passive mode");
추가 고려 사항
경우에 따라 FTP 서버가 잘못된 메시지를 보고할 수 있습니다. PASV 명령에 대한 응답의 IP 주소입니다. 이 문제는 PASV 주소 사용을 비활성화하여 해결할 수 있습니다:
ftp_set_option($connect, FTP_USEPASVADDRESS, false);
모범 사례
위의 솔루션으로 문제를 완화할 수 있지만 최적의 솔루션은 올바른 IP 주소와 포트 구성을 사용하도록 FTP 서버를 구성하는 것입니다. 이렇게 하면 모든 시나리오에서 적절한 작동이 보장됩니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3