Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скачивание файлов средствами perl 
:(
    Опции темы
mcsseifer
Дата 17.3.2007, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



 Такая ситуация. По пунктам
 1. Пользователь заходит на сайт, в раздел обновления.
 2. Выбирает там себе необходимые файлы, добавляет их себе в корзину
 3. Заходит в раздел корзины
 4. Нажимает кнопочку скачать

 Вот тут вопрос как на perl написать закачку сразу всех файлов. 
 Средствами браузера 
 Пример;
   #!/usr/bin/perl -w

   use strict;

   my (@files);

   @files= ('file.gif', 'dir.gif');
    foreach (@files) {
      print "Content-Disposition: attachment; filename=$_\n";
      print "Content-Type: application/x-force-download; name=\"$_\"\n";
      print "Pragma: no-cache\n\n";
      open(F, $_);
      print while (<F>);
      close(F);
    }

 Сами знаете что получается (кто знает). Один большой файл smile..

 PS: надеюсь понятно поставил вопрос. Заранее Спасибо.

Это сообщение отредактировал(а) mcsseifer - 17.3.2007, 10:59
PM MAIL   Вверх
nitr
Дата 17.3.2007, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 12
Всего: 84



создавай архив и выкладывай, многие придумали уже, к примеру, заходишь на сайт, есть раздел Скачать (ПО), выбираешь себе что скачать или создаёшь архив выбранных прог, имхо удобно и трафик экономия ;)

И не стоит придумывать иначе...


--------------------
PM   Вверх
Zuzu
Дата 28.3.2007, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Можно поступить так, как делают программы - музыкальные каталоги. 

Пользователь:
1. Набирает файлы в "корзину"
2. Говорит "скачать"

Программа
1. Архивирует выбранные файлы во временный архив
2a. Отдает сформированный архив в виде потока
либо
2b. Формирует страницу со ссылкой на этот архив (можно и по почте ссылку на эту страницу послать)
3. Удаляет временный архив через некоторое время.



--------------------
Проводить эксперименты на живом сервере опасно, а на мертвом - бесполезно.
PM   Вверх
nitr
Дата 28.3.2007, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 12
Всего: 84



Zuzu, угу... я примерно тоже самое предложил smile принцип один.
Очень неплохое решение, и экономит траффик, да и время ;)


--------------------
PM   Вверх
aksined
Дата 9.4.2007, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Надеюсь, не обижу никого тем, что приведу кусочек кода, который работает у меня. Временного архива нет. Он создается в памяти и пишется в поток.

Код

sub two{
    my @qwe = grep {m!^\d+\.img$!} $q->param("req");    
    
    print $q->header(-type => "application/zip", -expires => "now", -content_disposition => "filename=search.zip");
    
    use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
    my $zip = Archive::Zip->new();
    defined $zip || die "can't create zip-object: $!\n";
    foreach(@qwe){
        if(-e "$dir/$_"){
            $zip->addFile("$dir/$_", $_) || die "can't add file $_ to archive: $!\n";
        }
    }
    die "can't write archive to file: $!\n" if ($zip->writeToFileHandle(*STDOUT) != AZ_OK);
}


Это сообщение отредактировал(а) aksined - 18.4.2007, 10:25
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




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


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

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