>  기사  >  백엔드 개발  >  PHP ZipArchive를 사용하여 zip 파일을 만들고 다운로드하는 방법은 무엇입니까?

PHP ZipArchive를 사용하여 zip 파일을 만들고 다운로드하는 방법은 무엇입니까?

藏色散人
藏色散人원래의
2019-02-28 13:19:594035검색

프로젝트 개발 과정에서 zip 파일 생성 및 다운로드 제공 기능을 구현해야 할 수도 있습니다. 따라서 여기서는 ZipArchive 클래스를 사용하여 zip 파일을 만든 다음 다운로드할 수 있습니다.

PHP ZipArchive를 사용하여 zip 파일을 만들고 다운로드하는 방법은 무엇입니까?

간단한 예를 들어보겠습니다. 때로는 PHP 코드를 사용하여 zip 아카이브 파일을 생성하고 zip 파일에 일부 사진, 문서 등을 추가한 다음 다운로드를 위해 제공해야 합니다. 여기서는 zip 아카이브 파일을 생성하는 데 도움이 되는 매우 간단한 createZip() 메서드를 만들 것입니다. 이 방법을 사용하면 파일, 문서, 이미지 및 경로 배열을 간단히 전달할 수 있습니다.

관련 권장사항: " [zip 파일 라이브러리] 10 php zip 파일 라이브러리 다운로드 "

아래에서는 매우 간단한 index.php 파일 예제를 작성했습니다. 직접 복사하여 테스트를 위해 로컬에서 실행할 수 있습니다.

index.php 파일에 사용 가능한 이미지 파일이 있는지 확인하세요.

1)demo1.jpg
2)demo2.jpg

코드 예제는 다음과 같습니다.

 <?php


/* create a compressed zip file */
function createZip($files = array(), $destination = &#39;&#39;, $overwrite = false) {


    if(file_exists($destination) && !$overwrite) { return false; }


    $validFiles = [];
    if(is_array($files)) {
        foreach($files as $file) {
            if(file_exists($file)) {
                $validFiles[] = $file;
            }
        }
    }


    if(count($validFiles)) {
        $zip = new ZipArchive();
        if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
            return false;
        }


        foreach($validFiles as $file) {
            $zip->addFile($file,$file);
        }


        $zip->close();
        return file_exists($destination);
    }else{
        return false;
    }
}


$fileName = &#39;my-archive.zip&#39;;
$files_to_zip = [&#39;demo1.jpg&#39;, &#39;demo2.jpg&#39;];
$result = createZip($files_to_zip, $fileName);


header("Content-Disposition: attachment; filename=\"".$fileName."\"");
header("Content-Length: ".filesize($fileName));
readfile($fileName);

이 글은 PHP ZipArchive를 사용하여 zip 파일을 만들고 다운로드하는 방법에 관한 것입니다. 도움이 필요한 친구를 도와주세요!

위 내용은 PHP ZipArchive를 사용하여 zip 파일을 만들고 다운로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.