Показаны сообщения с ярлыком архив. Показать все сообщения
Показаны сообщения с ярлыком архив. Показать все сообщения

вторник, 14 августа 2012 г.

Архивирование файлов на php

В этом посте я покажу как на PHP заархивировать фалы в zip формат. Часто я вижу слишком грамоздкие скрипты предназначенные для этих целей. В моем примере всего несколько строк, просто взгляните! Используйте свободно для любых своих целей!

HTML
<form name="zips" method="post">
<input type="checkbox" name="files[]" value="flowers.jpg" />
<img src="files/image.png" />
flowers.jpg
<input type="checkbox" name="files[]" value="fun.jpg" />
<img src="files/image.png" />
fun.jpg
........
<input type="submit" name="createpdf" value="Скачать ZIP" />&nbsp;
<input type="reset" name="reset" value="Сбросить" />
</form>


PHP
Следующий код конвертирует выбранные файлы в ZIP формат.
<?php
$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)
{
// открываем zip
$error .= "* Ошибка создания файла";
}
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);
// убираем файлы из кэша
unlink($zip_name);
}
}
else
$error .= "* Выберите файл!";
}
else
$error .= "* Нет расширения";
}
?>