[php] PHP에서 ZIP 파일을 생성한 후 FTP로 업로드하기

이번에는 PHP를 사용하여 파일을 압축하고 FTP를 사용하여 압축 파일을 원격 서버로 업로드하는 방법에 대해 알아보겠습니다.

1. 파일을 ZIP으로 압축하기

PHP에서는 ZipArchive 클래스를 사용하여 파일을 ZIP으로 압축할 수 있습니다. 아래는 간단한 예제 코드입니다.

<?php
$zip = new ZipArchive();
$zipFileName = 'files.zip';

if ($zip->open($zipFileName, ZipArchive::CREATE) === TRUE) {
    $files = glob('path/to/files/*');
    foreach ($files as $file) {
        $zip->addFile($file, basename($file));
    }
    $zip->close();
    echo 'ZIP 파일이 생성되었습니다.';
} else {
    echo 'ZIP 파일을 생성하지 못했습니다.';
}

위 코드는 ZipArchive를 사용하여 지정된 디렉토리의 파일을 압축하여 files.zip으로 저장합니다.

2. FTP를 사용하여 파일 업로드하기

압축된 ZIP 파일을 FTP를 통해 원격 서버로 업로드할 수 있습니다. 아래는 FTP를 사용하여 파일을 업로드하는 방법입니다.

<?php
$ftpServer = 'ftp.example.com';
$ftpUsername = 'username';
$ftpPassword = 'password';
$remoteFile = 'files.zip';
$localFile = 'files.zip';

// 연결 설정
$connId = ftp_connect($ftpServer);
$loginResult = ftp_login($connId, $ftpUsername, $ftpPassword);

// 파일 업로드
if (ftp_put($connId, $remoteFile, $localFile, FTP_BINARY)) {
    echo '파일이 성공적으로 업로드되었습니다.';
} else {
    echo '파일을 업로드하지 못했습니다.';
}

// 연결 종료
ftp_close($connId);

위 코드는 ftp_connect를 사용하여 FTP 서버에 연결하고, ftp_login으로 인증을 수행한 후, ftp_put을 사용하여 파일을 업로드합니다.

이제 위의 두 과정을 결합하여 파일 압축 및 FTP 업로드를 수행할 수 있습니다. 이것으로 PHP에서 ZIP 파일을 생성하고 FTP로 업로드하는 방법에 대해 알아보았습니다.

참고 자료