Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Создание архива

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: Как заставить кучу файлов собратся в архив
Никола
Отправлено: 11 Января, 2007 - 16:21:57
Post Id



Гость


Покинул форум
Сообщений всего: 72
Дата рег-ции: Дек. 2006  


Помог: 0 раз(а)




Доброго времени суток

Есть следующий вопрос:

Есть Папка и в ней очень много файлов (все файлы одного разширения) - и соответственно есть скриптик который выводит имена этих файлов и urlы до них. Для некоторых посетителей сайта это удобно - они заходят, ищут необходимый им файл качают и всё. Но некоторым необходимы сразу все файлы, а качать каждый по отдельности очень неудобно и долго... так вот вопрос --> Как можно сделать так чтобы при нажатии на ссылку (скажем "Скачать Всё") все файлы с данной папки собирались в один архив и пользователь мог его скачать, а после того как пользователь его скачал, хотелось бы чтоб архив удалился (или чтоб удалялся по истечению какого-то времени)

Буду очень признателен за любую информацию
 
 Top
f0rm4t
Отправлено: 11 Января, 2007 - 22:07:13
Post Id



Посетитель


Покинул форум
Сообщений всего: 433
Дата рег-ции: Июнь 2006  


Помог: -1 раз(а)




А какой архив хочешь? rar, zip, gz или bzip2?

Для автоматического удаления юзай крон.
 
 Top
Санек Че
Отправлено: 12 Января, 2007 - 10:36:16
Post Id



Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Янв. 2007  
Откуда: Тамбов, Россия


Помог: 0 раз(а)




Доброе время суток!
Аналогичная проблема, как заархивировать папку в один архив gz или zip!? Модуль Pslzip уже имеется? Закатив глазки
 
 Top
Никола
Отправлено: 14 Января, 2007 - 16:18:45
Post Id



Гость


Покинул форум
Сообщений всего: 72
Дата рег-ции: Дек. 2006  


Помог: 0 раз(а)




f0rm4t
Архив можно хоть rar, хоть zip
А что за "крон"?\n\n(Добавление)
А что за Pslzip? Я слышал только об zip.lib - (в описании говорилось что с ее помощью можно создавать архивы "на лету") но у меня чтото неполучилось Растерялся
 
 Top
f0rm4t
Отправлено: 14 Января, 2007 - 17:00:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 433
Дата рег-ции: Июнь 2006  


Помог: -1 раз(а)




Крон (cron) - очень гибкий планировщик под nix-платформу.

Пример создания ZIP-файла:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $zip = new ZipArchive();
  4. $filename = "./test112.zip";
  5.  
  6. if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {
  7.     exit("cannot open <$filename>n");
  8. }
  9.  
  10. $zip->addFromString("testfilephp.txt" . time(), "#1 This is a test string added as testfilephp.txt.n");
  11. $zip->addFromString("testfilephp2.txt" . time(), "#2 This is a test string added as testfilephp2.txt.n");
  12. $zip->addFile($thisdir . "/too.php","/testfromfile.php");
  13. echo "numfiles: " . $zip->numFiles . "n";
  14. echo "status:" . $zip->status . "n";
  15. $zip->close();
  16. ?>
 
 Top
Никола
Отправлено: 14 Января, 2007 - 17:14:37
Post Id



Гость


Покинул форум
Сообщений всего: 72
Дата рег-ции: Дек. 2006  


Помог: 0 раз(а)




Спасибо
Попробую - может еще что спрошу
 
 Top
valenok Модератор
Отправлено: 14 Января, 2007 - 17:30:21
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




А файлы размером более 8 мб архивирует?


-----
Truly yours, Sasha.
 
My status
 Top
f0rm4t
Отправлено: 14 Января, 2007 - 21:19:49
Post Id



Посетитель


Покинул форум
Сообщений всего: 433
Дата рег-ции: Июнь 2006  


Помог: -1 раз(а)




Слушай, я на твои вопросы отвечать не буду, так как это банальное набивательство постов!
 
 Top
Санек Че
Отправлено: 15 Января, 2007 - 08:02:19
Post Id



Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Янв. 2007  
Откуда: Тамбов, Россия


Помог: 0 раз(а)




Люди ну памагите же! Ктонить юзал PSLzip? Я уже @хренел, не могу допереть, как из одной папки получить один архив, при том что ее содержимое мне не известно!? Когда я указываю на содержимое данного каталога, он мне выводит архивы всех тех файлов, которые находятся в нем, а такая тема мне не подходит! А?!
 
 Top
evgenijj
Отправлено: 15 Января, 2007 - 10:04:17
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. // Создаем архив
  4. $zip = new ZipArchive;
  5. $res = $zip -> open('archive.zip', ZipArchive::CREATE);
  6. if ($res === TRUE)
  7. {
  8.     $zip -> addFromString('string.txt', 'Это строка, которая будет записана в файл string.txt, а сам файл помещен в архив');
  9.     // файл file.txt будет помещен в архив под именем file_zip.txt
  10.     $zip -> addFile('file.txt', 'file_zip.txt');
  11.     $zip -> close();
  12.     echo '<p >Файлы добавлены в архив</p>';
  13. }
  14. else
  15. {
  16.     echo '<p >Ошибка</p>';
  17. }
  18.  
  19. // Извлекаем файлы из архива
  20. $zip = new ZipArchive;
  21. if ($zip -> open('archive.zip') === TRUE)
  22. {
  23.     $zip -> extractTo('testunzip');
  24.     $zip -> close();
  25.     echo '<p >Архив распакован</p>';
  26. }
  27. else
  28. {
  29.     echo '<p >Ошибка при извлечении файлов из архива</p>';
  30. }
  31.  
  32. // Создаем архив и добавляем в него все файлы из директории
  33. $zip = new ZipArchive;
  34. $res = $zip -> open('images.zip', ZipArchive::CREATE);
  35. if ($res === TRUE)
  36. {
  37.     $dir = opendir( "./images" );
  38.     chdir( "./images" );
  39.        
  40.     while( $d = readdir( $dir ) )
  41.     {
  42.         if( is_file( $d ) )
  43.         {
  44.             echo "Добавляем в архив файл ".$d." размером ".filesize( $d )."<br />";
  45.             $zip -> addFile( $d, $d);          
  46.         }
  47.     }
  48.     $zip -> close();
  49.     closedir( $dir );
  50.     echo '<p >Файлы добавлены в архив</p>';
  51. }
  52. else
  53. {
  54.     echo '<p >Ошибка</p>';
  55. }
  56. ?>
  57.  
 
 Top
Санек Че
Отправлено: 15 Января, 2007 - 11:54:22
Post Id



Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Янв. 2007  
Откуда: Тамбов, Россия


Помог: 0 раз(а)




А для PclZip'a это тоже подойдет? Так как ZipArhive'a у меня нет! Это вообще что, модуль устанавливаемый как и PclZip?
 
 Top
evgenijj
Отправлено: 15 Января, 2007 - 12:42:55
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Санек Че пишет:
А для PclZip'a это тоже подойдет? Так как ZipArhive'a у меня нет! Это вообще что, модуль устанавливаемый как и PclZip?

Скачать библиотеку php_zip.dll с сайта http://snaps.php.net/ . Файл положить в директорию с расширениями PHP. Прописать в php.ini extension=php_zip.dll
 
 Top
Санек Че
Отправлено: 15 Января, 2007 - 13:02:09
Post Id



Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Янв. 2007  
Откуда: Тамбов, Россия


Помог: 0 раз(а)




А что именно там качать? Там много архивов!
 
 Top
evgenijj
Отправлено: 15 Января, 2007 - 14:48:17
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Санек Че пишет:
А что именно там качать? Там много архивов!

На этой вот странице http://pecl4win.php.net/ext.php/php_zip.dll выбери файл библиотеки для своей версии PHP. Ну что ты как маленький?
 
 Top
Санек Че
Отправлено: 17 Января, 2007 - 12:19:07
Post Id



Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Янв. 2007  
Откуда: Тамбов, Россия


Помог: 0 раз(а)




Снова сдрасьте! У меня опять трабл: функция ZipArhive, как я понимаю для винды, а для Unixa нет ничего похожего!? Растерялся
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB