0
zip 파일을 생성하고 다운로드했습니다. 하지만 내 문제는 단지 루트 폴더의 전체 파일이 아닌 특정 파일을 다운로드하려고한다는 것입니다.php에서 우편 아카이브 생성 및 다운로드
내 코드는 그냥 파일 만 임명했다 zip 파일이 아닌 폴더를 만들고 싶어 특정 파일이 아닌 루트 폴더의 모든 파일이
$zipname = 'documents.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($allDocuments as $document) {
$filetopath = public_path().$document;
$filename = explode('/',$document);
$name = end($filename);
$zip->addFile($filetopath,$name);
}
$zip->close();
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipname);
header('Content-Length: ' . filesize($zipname));
readfile($zipname);
입니다. 그러나 이것으로 모든 폴더와 모든 파일을 가져옵니다.
$ alldocumnets 변수에서 나는 모든 레코드가 아닌 제한된 레코드를 얻고 있습니다. 그러나 zip을 만들 때 모든 파일을 가져옵니다.
어디서 잘못되고 있는지 이해할 수 없습니다. 디렉토리에 대한
zipname을 동적으로 설정하여이 문제를 해결했습니다. 사실 나는 날짜 범위가 있으며 해당 범위에 따라 데이터베이스에서 문서를 가져 와서 zip 파일을 만들고 다운로드합니다. 로그 범위를 설정하면 zip에 많은 파일이 있습니다. 그러나 그 후에 작은 날짜 범위를 설정하면 파일이 줄어들지 만 여전히 이전 파일이 모두 나옵니다. 동일한 우편 번호 때문입니다. –
zipname을 동적으로 설정하면 문제가 없습니다. 그러나이 문제에 대한 최선의 해결책이 필요하지는 않습니다. 도 사용했습니다. $ zip-> open ($ zipname, ZipArchive :: OVERWRITE); –
나는 당신이 무슨 뜻인지 정말로 모르겠다. 이 대답은 도움이되지 않아 친절하게 제거합니다. 그렇지 않으면, upvote하고 동의하십시오. – wp78de