0

, 나는 서버의 항목에 관한 일부 파일을 아래와 같이내 프로젝트에서

Item-1 => file1.txt, file2.pdf and file3.doc 
Item-2 => file4.pdf, file5.ppt 
Item-3 => file6.txt, file7.docx and file8.ppt 
.... 

내가 얻을 수 있습니다 위의 항목을 $this->getAllItems()까지 입력 한 다음 각 항목을 반복합니다.

구조화 된 방식으로 모든 파일을 압축하려고합니다. 따라서 사용자는 파일이 어떤 항목에 속해 있는지 알 수 있습니다.

는 내가 뭘하려고 폴더에 자신의 존경받는 항목에 관련된 파일을 보관하고, "메인"폴더에 다음 압축 (이 임시 경로에서 발생해야 을)를 포장하고 사용자의 다운로드를 할 수있다 압축 폴더. 따라서, 파일이 구조화 된 방법으로 될 것이라고 아래와 같이 여기 검색하는 동안, 나는 임시 경로에있는 파일 (하지만 폴더)을 압축하고 압축 된 폴더를 만들 않는 link있어

main 
    Item-1 
     --> file1.txt 
     --> file2.pdf 
     --> file3.doc 
    Item-2 
     --> file4.pdf 
     --> file5.ppt 
    Item-3 
     --> file6.txt 
     --> file7.docx 
     --> file8.ppt 

다운로드 할 수 있습니다.

추 신 : 압축은 사용자가 모든 다운로드 요청에 대해 수행해야합니다 ().

+0

임시 경로에서 디렉토리를 압축하고 만드는 것에 대해 많이 알지는 못합니다. 그래서 코드는 없지만 내가 시도한 것을 참조하는 링크 만 있습니다. –

답변

0

이 정보가 정확한지 아닌지 잘 모르겠습니다. 그러나이 방법이 효과적이었습니다.

나는이 link에서 사용할 수있는 코드의 for 루프 부분을 수정했습니다. 위의 코드에서

# loop through each file 
foreach($files as $file){ 

    # download file 
    $download_file = file_get_contents($file); 

    # Create a empty folder 
    $zip->addEmptyDir($itemName); 

    #add to the above created new folder in zip 
    $zip->addFromString($itemName . '/' . basename($file), $download_file); 

} 

, $itemName은 이미 내 게시물에서 언급 한대로 $this->getAllItems()에 반복하면서 동적으로 인출되는 항목 이름입니다.

이 정보가 정확한지 알려주세요.