2016-12-13 6 views
0

Ниже приведен код для создания молнии нескольких файлов:не в состоянии создать файл почтового индекса в 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); 

?> 

Этого код действительно создает почтовый файл, но он поврежден.

EDIT:

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

1 - Является ли файл на вашем сервере (перед загрузкой) поврежденным тоже? 2 - Работает ли он, если вы добавите второй параметр (имя файла) в метод 'addFile'? –

+0

Откройте файл с помощью текстового редактора и проверьте, есть ли пустые строки вверху. Если да, нормализуется ли, если вы их удалите? В этой ситуации проверьте свои php-файлы, чтобы увидеть, где они возвращают пустые строки. –

+0

@ рэп-2-ч нет, он не поврежден. 2 - Работает ли он, если вы добавляете второй параметр (имя файла) в методе addFile? - означает? –

ответ

1

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

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

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

// ... 

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

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

+0

да .. это решение .. и как скачать файл? –

+1

@PathikVejani Вы также можете использовать 'FCPATH. 'pdffiles/14816393105-annexc-form.pdf''. который является абсолютным путем, позволяет печатать на полном пути. – user4419336