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';
	}
}?>

Нам будет приятно

Поделитесь

Комментарии

Загрузка комментариев...