<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); // require($_SERVER["DOCUMENT_ROOT"]."/download/createzip.php"); $arrFile = array( "/upload/item.jpg", "/upload/item2.jpg", "/upload/slide.jpg", "/upload/products/doc/CWSO.pdf", "/upload/products/doc/CWSS-C-W.pdf", "/upload/products/doc/CWSS-O.pdf", "/upload/products/doc/CWST.pdf", "/upload/products/doc/DBS1224B4W_manual.pdf", "/upload/products/doc/EMA_DBS_Certificate.pdf", "/upload/products/doc/EnScape_Certificate.pdf", "/upload/products/doc/ExitPoint_Certificate.pdf", "/upload/products/doc/ExitPoint_manual.pdf", ); createZipAndDownload($arrFile); function createZipAndDownload($arFiles) { $zip = new ZipArchive(); $filename = "system_sensor_archive_".date("d.m.Y").".zip"; var_dump($filename); if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) { exit("Невозможно открыть <$filename>\n"); } foreach ($arFiles as $file) { $arr = explode("/", $file); var_dump($arr); $zip->addFile($_SERVER["DOCUMENT_ROOT"].$file, end($arr)); } $zip->close(); file_force_download($filename); } function file_force_download($file) { if (file_exists($file)) { // сбрасываем буфер вывода PHP, чтобы избежать переполнения памяти выделенной под скрипт // если этого не сделать файл будет читаться в память полностью! if (ob_get_level()) { ob_end_clean(); } // заставляем браузер показать окно сохранения файла header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . basename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); // читаем файл и отправляем его пользователю readfile($file); unlink($file); exit; } }
Оригинал тут http://pastebin.com/h8zubtLz