16.06.2013
Создание ZIP архива
Для начала создадим форму, в которой будут перечислены все файлы нашей базы.
	 Всю остальную работу выполнит PHP.
Происходит следующее: выбранные пользователем файлы добавляются в новый ZIP архив с именем текущего времени, архив загружается на компьютер пользователя.
Источник: Ruseller http://ruseller.com/lessons.php?rub=37&id=1763
<form name=zips method=post>
	<input type=checkboxname='files[]' value='flowers.jpg'></input><imgsrc='files/image.png'></img>flowers.jpg
	<input type=checkboxname='files[]' value='fun.jpg'></input><imgsrc='files/image.png'></img>fun.jpg</form>
	<p><input type=checkboxname='files[]' value='9lessons.docx'></input><imgsrc='files/doc.png'></img>9lessons.docx
	........
	<input type=submit name=createpdfvalue='Download as ZIP'></input>
	<input type=reset name=reset></input>
<?$error = '';
if(isset($_POST['createpdf'])) {
	$post = $_POST;
	$file_folder = 'files/'; // папка с файлами
	if(extension_loaded('zip')) {
		if(isset($post['files']) and count($post['files']) > 0) {
			// проверяем выбранные файлы
			$zip = new ZipArchive(); // подгружаем библиотеку zip
			$zip_name = time().'.zip'; // имя файла
			if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE) {
				$error .= '* Sorry ZIP creation failed at this time';
			}
			foreach($post['files'] as $file) {
				$zip->addFile($file_folder.$file); // добавляем файлы в zip архив
			}
			$zip->close();
			if(file_exists($zip_name)) {
				// отдаём файл на скачивание
				header('Content-type: application/zip');
				header('Content-Disposition: attachment; filename=''.$zip_name.''');
				readfile($zip_name);
				// удаляем zip файл если он существует
				unlink($zip_name);
			}
		} else {
			$error .= '* Please select file to zip ';
		}
	} else {
		$error .= '* You dont have ZIP extension';
	}
}?>
								Нам будет приятно
Поделитесь
Комментарии