не удалось создать zip-файл в codeigniter

Ниже приведен код для создания архива из нескольких файлов:

<?php

$file1 = 'D:/xampp/htdocs/pdf/pdffiles/14816393105-annexc-form.pdf';
$file2 = 'D:/xampp/htdocs/pdf/pdffiles/14816393105-resident-form.pdf'

$files = array($file1,$file2);
$zipname = time().'-file.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
$zip->addFile($file);
}
$zip->close();

header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipname);
header('Content-Length: ' . filesize($zipname));
readfile($zipname);

?>

Этот код создает ZIP-файл, но он поврежден.

РЕДАКТИРОВАТЬ:

zip file is created but if i extract it then it is from the D:/ drive. Means zip file contains this:XAMPP \ HTDOCS \ П.Д. е \ PDF-файлов \ file1.pdf

0

Решение

Вы можете указать имя файла в addFile метод. Это не очевидно, поскольку вокруг нет заметных примеров, но вы можете использовать $localname (второй параметр) для определения и управления структурой файла / каталога внутри zip. Используйте его, если вы не хотите, чтобы файлы были включены в их абсолютное дерево каталогов.

Вот рабочий пример использования basename:

$file1 = 'D:/xampp/htdocs/pdf/pdffiles/14816393105-annexc-form.pdf';

// ...

$zip->addFile($file1, basename($file1));

basename возвращает конечный компонент имени пути, поэтому он просто сохранит 14816393105-annexc-form.pdf и добавьте его в свой почтовый индекс.

1

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

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

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