상세 컨텐츠

본문 제목

[php] ftp 파일 전송 Failed to establish connection

php

by 2hansoul 2023. 7. 27. 18:59

본문

반응형

ftp 로 파일 전송시 Failed to establish connection 해당 오류가 발생 하면 

크키가 0인 파일만 만들어 지고 데이터가 올라 가지 않는다 

ftp 환경에 따라 ftp_pasv($ftpConnection, true); 를 이용 하여 '수동모드'로 작동 해야 합니다 

 

 

ftp_pasv($ftpConnection, true) 함수를 사용 할 때 아무데나 넣어서 작동 하진 않고 로그인이 끝나고 작성 해야 합니다 

로그인 전에 해당 함수를 넣으면 동일한 에러가 발생합니다 

 

<?php
// FTP 서버 접속 정보 설정
$ftpServer = '접속서버';
$ftp_port = "기본은 21port";
$ftpUsername = '';
$ftpPassword = '';
$remoteFilePath = '/var/www/html/file_name'; // 원격 파일 경로
$localFilePath = '/home/lhs/file2_name'; // 로컬에 저장할 파일 경로 및 이름

//remoteFilePath 경로에 있는 파일을 -> localFilePath 경로로 가져온다 

 /* fopen함수는 PHP에서 파일을 열기 위해 사용되는 함수 
 	localFilePath 파일을 w+ 읽기/쓰기 모드로 파일을 연다 */
   
 $fp = fopen($localFilePath, 'w+');
 

// FTP 서버에 연결
$ftpConnection = ftp_connect($ftpServer ,$ftp_port);

if (!$ftpConnection) {
    die('FTP 서버에 연결할 수 없습니다.');
}

// FTP 로그인
$loginResult = ftp_login($ftpConnection, $ftpUsername, $ftpPassword);

if (!$loginResult) {
    die('FTP 로그인에 실패했습니다.');
}

// 수동모드로 변경 
ftp_pasv($ftpConnection, true);

// 파일 다운로드
if (ftp_fget($ftpConnection, $fp, $remoteFilePath, FTP_BINARY)) {
 	 while(!feof($fp)){ 
        $file .= fread($fp, 1024); 
   }
   echo "Successfully written to $localFilePath\n"; 
} else {
    echo '파일 다운로드 실패: ';
}

// FTP 연결 해제
ftp_close($ftpConnection);
?>
반응형

관련글 더보기

댓글 영역