개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.02 17:49

ZipArchive::getStreamName 관련 질문

목록
  • GooglePlay매니아 4일 전 2025.06.02 17:49
  • 10
    1
제가 현재 PHP의 ZipArchive 클래스를 이용하여 ZIP 파일을 생성하고 있습니다. 하지만 getStreamName() 메소드에 대해 이해가 잘 안되어서 도움을 요청하고 싶습니다.

제가 ZIP 파일을 생성한 후, getStreamName() 메소드를 사용하여 스트림 이름을 얻으려 합니다. 하지만 스트림 이름이 null 값으로 출력되는 것을 확인하고 있습니다. 이에 대해 어떤 원인으로 인해 발생하는 것인지 궁금합니다.

아래는 제 코드의 일부분입니다.

php

$zip = new ZipArchive();

if ($zip->open('example.zip', ZipArchive::CREATE) === TRUE) {

    $zip->addFile('example.txt', 'example.txt');

    $streamName = $zip->getStreamName(ZipArchive::CREATE);

    echo $streamName . "n";

    $zip->close();

} else {

    echo 'failed';

}



위의 코드에서 getStreamName() 메소드는 null 값을 반환하고 있습니다. 이에 대해 어떤 원인으로 인해 발생하는 것인지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  4일 전



    ZipArchive::getStreamName() 메소드는 ZIP 파일에 추가된 파일의 스트림 이름을 반환합니다. 하지만 이 메소드는 ZIP 파일을 생성한 후에만 사용할 수 있습니다.

    위의 코드에서 getStreamName() 메소드는 null 값을 반환하는 이유는 ZIP 파일을 생성한 후에 사용하도록 설계된 메소드인 만큼, ZIP 파일을 생성하기 전에 사용했기 때문입니다.

    ZIP 파일을 생성한 후에 getStreamName() 메소드를 사용하려면, ZIP 파일을 생성한 후에 addFile() 메소드를 사용하여 파일을 추가한 후에 사용해야 합니다.

    예를 들어, 아래와 같이 코드를 수정하면 getStreamName() 메소드가 null 값을 반환하지 않고 스트림 이름을 반환할 수 있습니다.

    #hostingforum.kr
    php
    
    $zip = new ZipArchive();
    
    if ($zip->open('example.zip', ZipArchive::CREATE) === TRUE) {
    
        $zip->addFile('example.txt', 'example.txt');
    
        $zip->close();
    
        $zip->open('example.zip', ZipArchive::CREATE);
    
        $streamName = $zip->getStreamName('example.txt');
    
        echo $streamName . "n";
    
        $zip->close();
    
    } else {
    
        echo 'failed';
    
    }
    
    


    위의 코드에서, ZIP 파일을 생성한 후에 close() 메소드를 사용하여 ZIP 파일을 닫고, 다시 open() 메소드를 사용하여 ZIP 파일을 열어줍니다. 그리고 그 후에 getStreamName() 메소드를 사용하여 스트림 이름을 반환받을 수 있습니다.

    2025-06-02 17:50

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 25,762건 / 57 페이지

검색

게시물 검색