Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Сжатие папки 
V
    Опции темы
MoLeX
  Дата 27.12.2007, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: нет
Всего: 140



Нужна помощь в сжатие папки (естетсвенно папка не пустая, в ней до чертиков файлов в формате .html) и отдачи ее (сжатую папку) на скачку пользователю.
Можно ссылки чтобы знать в каком направление копать, а лучше  smile.

З.Ы. возможно тема не в том разделе, если да то модератры сильно не ругайтесь  smile 


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
skyboy
Дата 27.12.2007, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



есть набор функций для работы с ZIP-архивами.
Устроит?
Есть ещё GZIP-сжатие, которое выдает меньший(часто - намного) результирующий архив, но он(алгоритм) потоковый - может работать только с одним файлом. 
вот ещё "внешний"(дополнительный) класс для сжатия в tar/zip/gzip/bzip2.
PM MAIL   Вверх
MoLeX
  Дата 27.12.2007, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: нет
Всего: 140



Не когда не встречался с задачей: отправить в архив все файлы (конкретной папки) и отдать пользователю для скачки. Причем надо было чтобы эта возможность была и при выключенной библиотеки, следовательно надо использовать внешнюю библиотеку.  
skyboyподтолкнул меня в правильном направлении и в итоге получилось вот это - 

zip.php
Код

<?php
//    подключаем библиотечку
require_once "./pclzip.lib.php";

//    Название папки которую будем сжимать
    $catalog = "content";    
    
//    чтобы архив не распухать после каждого обращения к нему    
    @unlink($catalog.".zip");

//    Сам процесс впихивания файлоф в архив    
    $archive = new PclZip($catalog.".zip");
    $openDIR = opendir($catalog);
    while ($scan = readdir($openDIR))
    {
        if($scan == '.' || $scan == '..' ) continue;
        $list = $archive->add($catalog."/".$scan, PCLZIP_OPT_REMOVE_PATH, $scan);    
    }

//    Отдаем файлы на скачку    
header("Content-type: application/zip");
header("Content-Disposition: attachment; filename=\"".$catalog.".zip\"");
readfile($catalog.".zip");
?> 


вот в принцепе и фсе, может кому нибудь пригодится, ах да - для использовании нужна библиотека pclzip.lib.php

Это сообщение отредактировал(а) MoLeX - 27.12.2007, 15:48

Присоединённый файл ( Кол-во скачиваний: 22 )
Присоединённый файл  pclzip.lib.rar 23,41 Kb


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
FractalizeR
Дата 27.12.2007, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 27.12.2007
Где: Россия/Москва

Репутация: нет
Всего: 4



Есть еще
http://pear.php.net/packages.php?catpid=33...me=File+Formats

PEAR::File_Archive например.


--------------------
Чтобы поблагодарить или наоборот поругать участника форума лучше пользоваться значками "+" и "-", изменяющими репутацию. Они находятся слева от поста под именем пользователя.
PM MAIL   Вверх
flashaa
Дата 28.12.2007, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: нет
Всего: 25



Цитата(FractalizeR @  27.12.2007,  19:33 Найти цитируемый пост)
PEAR::File_Archive например. 

юзаю его.
PM MAIL   Вверх
MoLeX
Дата 31.12.2007, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: нет
Всего: 140



насколько понимаю должен быть сам PEAR, точно не помню но вроде с 6 версией разработчики отказались его вносить, или я не прав?!


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
flashaa
Дата 1.1.2008, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: нет
Всего: 25



Цитата(MoLeX @  31.12.2007,  21:35 Найти цитируемый пост)
насколько понимаю должен быть сам PEAR

Что конкретно имеется в виду под "сам PEAR" ? В принципе файлы из PEAR бывают взаимозависимы (могут требовать наличие других компонентов из PEAR), но все зависимости оговорены и кроме скачивания зависимостей для работы классов из PEAR ниче не нужно.
Для File_Archive есть 4 зависимости, можно посмотреть список тут - http://pear.php.net/package/File_Archive/download


PM MAIL   Вверх
Alex13
Дата 2.1.2008, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 280
Регистрация: 30.12.2005
Где: Новосибирск

Репутация: нет
Всего: 1



Я для таких целей юзал библиотечку PclTar - упаковывает в gzip.
Скачать можно отсюда: http://phpconcept.net/pcltar/index.en.php

На том же сайте есть еще аналогичная библиотека для упаковки в zip.


--------------------
Самая страшная ошибка - это ошибка, не имеющая явных причин и конкретных последствий.
Антисоциальный блог.
PM WWW ICQ Jabber   Вверх
FractalizeR
Дата 4.1.2008, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 27.12.2007
Где: Россия/Москва

Репутация: нет
Всего: 4



Цитата(MoLeX @ 31.12.2007,  21:35)
насколько понимаю должен быть сам PEAR, точно не помню но вроде с 6 версией разработчики отказались его вносить, или я не прав?!

Какое это имеет отношение в вашему вопросу? PEAR вполне можно поставить локально только для вашего проекта независимо от того, установил ли его ваш хостер или нет.


--------------------
Чтобы поблагодарить или наоборот поругать участника форума лучше пользоваться значками "+" и "-", изменяющими репутацию. Они находятся слева от поста под именем пользователя.
PM MAIL   Вверх
KLeonid
Дата 21.1.2008, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Entropy
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 5.7.2007
Где: Shpongleland

Репутация: нет
Всего: 1



Какие все витиеватые решения smile.
А я вот пользуюсь таким:
Код

exec("tar cZf " . $archive_name . ".tar " . $dir_name);


или так:
Код

exec("tar cf " . $archive_name . ".tar " . $dir_name);
exec("gzip -9 " . $archive_name . ".tar");


ну и выплюнуть клиенту:
Код

        header("Content-type: application/x-gzip");
        header("Content-Disposition: attachment; filename=" . $archive_name . ".tar.gz");
        header("Expires: 0");
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Pragma: public");


Мне кажется скомпиленные архиваторы побыстрее работают...
PM MAIL   Вверх
MoLeX
Дата 21.1.2008, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: нет
Всего: 140



KLeonid тема помеченна как решенной (галочка такая зеленая), поэтому не стоит поднимать его из мрака на свет.

З.Ы. тему закрываю что бы небыло больше искушения у людей...


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Libraries | Следующая тема »


 




[ Время генерации скрипта: 0.0521 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.