PHP를 사용해 외부 FTP 서버에 파일을 업로드 하려고 합니다.
아래 코드와 같은 흐름으로 작성을 했지만, 크기가 0인 파일만 만들어지고 데이터는 올라가지 않네요.
// Error code. $ftpConn = ftp_connect($ftpHost, $ftpPort); ftp_login($ftpConn, $Id, $password); ftp_put($ftpConn, $file, $path, FTP_BINARY)); // timeout ftp_close($ftpConn);
찾아보니 FTP 서버의 환경에 따라서 '수동모드'를 작동해야 한다고 합니다.
'ftp_pasv()' 함수로 해당 설정을 할 수 있는데,
값을 true로 설정해도 업로드가 안되는 것은 여전했습니다.
// Error code. $ftpConn = ftp_connect($ftpHost, $ftpPort); ftp_pasv($ftpConn, true); ftp_login($ftpConn, $Id, $password); ftp_put($ftpConn, $file, $path, FTP_BINARY)); // timeout ftp_close($ftpConn);
결국 답을 찾았습니다.
어이없게도 코드의 순서가 잘못되어 있었습니다.
'ftp_login()' 이후에 해당 옵션을 설정해야 정상적으로 작동을 합니다.
$ftpConn = ftp_connect($ftpHost, $ftpPort); ftp_login($ftpConn, $Id, $password); ftp_pasv($ftpConn, true); // 로그인 다음에 설정해야한다. ftp_put($ftpConn, $file, $path, FTP_BINARY)); ftp_close($ftpConn);
댓글
댓글 쓰기