+ + +
С нами с 22.08.05
Сообщения: 52
Рейтинг: 1
|
Добавлено: 12/03/06 в 08:33 |
Мужики, подскажите как создать (и прочитать) архив из нескольких файлов методами Perl, чтобы обычный юзер мог его скачать и распаковать.
|
|
|
|
С нами с 13.08.03
Сообщения: 533
Рейтинг: 481
|
Добавлено: 12/03/06 в 09:07 |
Код: | system("/usr/bin/zip archive.zip file1 file2 file3..."); |
ну и unzip соответственно
|
|
|
|
+ + +
С нами с 22.08.05
Сообщения: 52
Рейтинг: 1
|
Добавлено: 12/03/06 в 10:06 |
dm писал: | Код: | system("/usr/bin/zip archive.zip file1 file2 file3..."); |
ну и unzip соответственно |
Как я понимаю путь к файлам нужно указывать абсолютный, а первым файлом идет файл архива?
Да и путь /usr/bin/zip тоже вызывает сомнения. Проверки Код: |
-e "/usr/bin/zip"
-e "/usr/lib/zip"
|
дают отрицательный результат.
Вообще то читать архив я умею Код: | open LOG, "gzcat $FileLog|"; |
, а вот как сделать аналогичную обратную операцию я не спросил, не было на тот момент надобности.
|
|
|
|
С нами с 13.08.03
Сообщения: 533
Рейтинг: 481
|
Добавлено: 12/03/06 в 10:41 |
svs писал: | Как я понимаю путь к файлам нужно указывать абсолютный, а первым файлом идет файл архива? |
для zip - да
относительные/абсолютные пути - все от конкретной ситуации зависит
Цитата: |
Да и путь /usr/bin/zip тоже вызывает сомнения. Проверки Код: |
-e "/usr/bin/zip"
-e "/usr/lib/zip"
| дают отрицательный результат. |
возможно /usr/local/bin/zip, или вообще не установлен
опять же от конкретного сервера зависит
Цитата: |
Вообще то читать архив я умею Код: | open LOG, "gzcat $FileLog|"; | , а вот как сделать аналогичную обратную операцию я не спросил, не было на тот момент надобности. |
gzcat вообще-то не с архивами работает, а отдельными с файлами, это компрессор, а не архиватор
чтобы несколько файлов в один загнать, нужна связка tar (упаковать в один) + gzip (получившийся сжать), получается .tar.gz или .tgz
zip же умеет и паковать и сжимать сам одной командой, и раз "чтобы обычный юзер мог его скачать и распаковать" - выкладывать лучше именно зипы
|
|
|
|
www.romartstudio.com
С нами с 06.11.03
Сообщения: 12245
Рейтинг: 2263
|
Добавлено: 12/03/06 в 12:20 |
А такая связка неподойдет?
tar -c -T {listfile} | gzip >{arch}
|
|
|
|
+ + +
С нами с 22.08.05
Сообщения: 52
Рейтинг: 1
|
Добавлено: 12/03/06 в 12:47 |
shako писал: |
А такая связка неподойдет?
tar -c -T {listfile} | gzip >{arch}
|
А как ее применять, через open что ли? Поподробнее не мог бы...
|
|
|
|
+ + +
С нами с 22.08.05
Сообщения: 52
Рейтинг: 1
|
Добавлено: 12/03/06 в 13:52 |
Заработало! Большое спасибо dm.
Заработало, правда, после того, как поинтересовался у провайдера - и где же ентот zip находится? Он говорит - /usr/bin/zip (?)Но я же до этого проверял - не было там его! Неужто передернулся?
|
|
|
|
+ + +
С нами с 22.08.05
Сообщения: 52
Рейтинг: 1
|
Добавлено: 12/03/06 в 14:50 |
Сейчас попробую.
Последний раз редактировалось: svs (12/03/06 в 19:23), всего редактировалось 1 раз
|
|
|
|
С нами с 13.08.03
Сообщения: 533
Рейтинг: 481
|
Добавлено: 12/03/06 в 14:51 |
хм  увидел что клиенту zip нужен и поставил
дел-то на 30 секунд
|
|
|
|
+ + +
С нами с 22.08.05
Сообщения: 52
Рейтинг: 1
|
Добавлено: 12/03/06 в 19:23 |
Заработать то заработало, но только с путями не могу разобраться.
Указываю абсолютные пути файлов, а архив получается из вложенных папок. каков путь, такой и арахив.
К примеру
Код: |
system("/usr/bin/zip Name.zip ../main/one/file1.txt ../main/one/file2.txt ")
|
А архив получается такой:
Name(htdocs(main(one(file1.txt,file2.txt)))).zip т.е. вложенные папки
В чем дело?
|
|
|
|
С нами с 26.02.03
Сообщения: 2366
Рейтинг: 987
|
Добавлено: 13/03/06 в 01:03 |
Под перл есть модуль Archive::Zip. Если хост платный то пусть админ его тебе поставит - работы на пару минут.
|
|
|
|
+ + +
С нами с 22.08.05
Сообщения: 52
Рейтинг: 1
|
Добавлено: 13/03/06 в 11:13 |
Я вроде бы разобрался. Сначала нужно перейти в каталог и там уже все будет нормально
Код: | system("cd ../htdocs/main/one; /usr/bin/zip Archiv.zip readme.txt file1.txt file2.txt") |
Теперь вот хочу найти - какие опции есть у zip. Как их можно посмотреть?
К примеру - паролик бы надо поставить.
|
|
|
|
С нами с 13.08.03
Сообщения: 533
Рейтинг: 481
|
Добавлено: 13/03/06 в 11:38 |
svs писал: |
Теперь вот хочу найти - какие опции есть у zip. Как их можно посмотреть?
К примеру - паролик бы надо поставить. |
неужели man zip на сервере или zip manual в гугле так сложно набрать ? :)
http://www.die.net/doc/linux/man/man1/zip.1.html
|
|
|
|
+ + +
С нами с 22.08.05
Сообщения: 52
Рейтинг: 1
|
Добавлено: 13/03/06 в 12:36 |
dm писал: | неужели man zip на сервере или zip manual в гугле так сложно набрать ?
|
Хм.. Набрать не сложно, если только знать какие буковки набирать.
Спасибо.
|
|
|
|