создать и скачать zip-архив в Stack Overflow

Я создал почтовый файл и скачал его. Но моя проблема в том, что я просто хочу скачать конкретные файлы, а не полные файлы корневой папки.

Мой код

$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);

Я просто хочу создать zip-файл, в котором есть только имена файлов, а не папка, и в которых есть конкретные файлы, а не все файлы корневой папки. Но я получаю все папки и все файлы этим.

В переменной $ alldocumnets я получаю ограниченную запись, а не все записи.
Но при создании zip он получает все файлы.

Я не понимаю, где я ошибаюсь.

0

Решение

Вопрос о каталогах понятен: просто исключите все, что is_dir () == true

<?php
$allDocuments = array("a.py","b.py");

$zipname = 'documents.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach($allDocuments as $document) {
$filetopath = getcwd().'\\'.$document;
if(!is_dir($filetopath)) {
$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);

К сожалению, вторая часть не ясна. До тех пор, пока вы не сообщите нам, какие файлы вы намереваетесь исключить, или в чем именно заключается проблема, это не подлежит спасению.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]