[php] PHP에서 ZIP 파일을 만들어 원격 서버에 업로드하기

이번 포스팅에서는 PHP를 사용하여 ZIP 파일을 생성하고 그 파일을 원격 서버로 업로드하는 방법에 대해 알아보겠습니다.

ZIP 파일 생성

PHP에서 ZIP 파일을 생성하기 위해서는 먼저 ZipArchive 클래스를 사용해야 합니다. 아래는 간단한 예제 코드입니다.

<?php

$zip = new ZipArchive;
$zipFileName = 'example.zip';

if ($zip->open($zipFileName, ZipArchive::CREATE) === TRUE) {
  $zip->addFile('file1.txt', 'file1.txt');
  $zip->addFile('file2.txt', 'file2.txt');
  $zip->close();
  echo 'ZIP 파일이 생성되었습니다.';
} else {
  echo 'ZIP 파일을 생성하는데 실패했습니다.';
}

?>

위 예제에서는 ZipArchive 클래스를 사용하여 example.zip이라는 이름으로 ZIP 파일을 생성하고, file1.txtfile2.txt를 압축했습니다.

원격 서버에 업로드

생성된 ZIP 파일을 원격 서버로 업로드하기 위해서는 FTP나 SSH 등의 프로토콜을 사용할 수 있습니다. 이를 위해서 서버 연결 정보와 인증 정보가 필요합니다. 아래는 FTP를 사용하여 원격 서버로 파일을 업로드하는 예제 코드입니다.

<?php

$ftpServer = 'ftp.example.com';
$ftpUsername = 'username';
$ftpPassword = 'password';
$localFile = 'example.zip';
$remoteFile = 'upload/example.zip';

$conn = ftp_connect($ftpServer);
$login = ftp_login($conn, $ftpUsername, $ftpPassword);

if ($conn && $login) {
  ftp_put($conn, $remoteFile, $localFile, FTP_BINARY);
  echo '파일이 성공적으로 업로드되었습니다.';
} else {
  echo '업로드에 실패했습니다.';
}

ftp_close($conn);

?>

위 코드에서는 ftp_connect, ftp_login, ftp_put 함수를 사용하여 FTP를 통해 파일을 업로드했습니다.

이제 PHP를 사용하여 ZIP 파일을 생성하고 원격 서버로 업로드하는 방법에 대해 알아보았습니다. 각자의 환경에 맞게 서버 연결 정보와 파일 경로를 설정하여 사용해보시기 바랍니다.