Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Andrew Velikoredchanin               2:5026/29      20 Jan 2004  16:26:52
 To : dmkochkin@portobello.ie
 Subject : как получить сформированный файл с сервера ?
 -------------------------------------------------------------------------------- 
 
 Вторник Январь 20 2004, dmkochkin@portobello.ie пишет к Dmitry A. Nikitin:
 
  d>   Помогите начинающему перловоду плиз. Есть репорт который формируется
  d> перловым скриптом и разглядывается юзером в броузере. Все-бы ничего, но
  d> если
  d> юзер возжелает получить этот репорт в виде таблицы в экселе, как быть?
  d> Предполагаю нужно сделать некую ссылку каковая сформирует этот-же/такой-же
  d> репорт в файл и передаст юзеру этот файл, т.е. чтобы нажав ссылочку он
  d> получил диалог открыть/сохранить на диск. Однако как это сделать не знаю.
 
 Тут скорее по другому имеет смысл сделать.
 1. По линку запускается твой скрипт и формирует файл на диск.
 2. В этом-же скрипте после формирования файла выдаешь заголовок типа
 print "Content-Type: application/octet-stream\n";
 print "Content-Disposition:ttachment; filename=tvoe_ima_faila.xls\n\n";
 3. Открываешь файл и напрямую выдаешь его на стандартный вывод.
 Все. При нажатии на линк файл будет формироваться и выдваться на скачивание.
 Броузер при этом спросит куда сохранять файл.
 
  d> Кстати тут проблема еще и в том, чтобы разные люди работающие с этим
  d> отчетом, получали свой отчет, а не запрошенный соседом. Т.е. либо
  d> формировать файл на диске, но с неким идентификатором привязанным к
  d> юзерской
 
 Все просто. Т.к. и формирование и скачивание идет в одной процедуре, имя файла
 можешь делать с привязкой к pid - в перле это переменная $$.
 
  d> сессии или как-то еще. В общем я полагаю проблема из разряда FAQ, буду
  d> благодарен если ссылку на этот FAQ или еще какие документы кинете, а еще
  d> лучше примерчики до кучки. Ключ от квартиры с деньгами приветствуется , но
  d> необязателен =))
 
 Вот тебе и ключь от квартиры с деньгами: :)
 
 $r->content_type($mimetype.'; name='.$filename);
 $r->header_out('Content-Disposition', $disposition.'; filename='.$filename);
 $r->send_http_header;
 
 open(my $pg, "<".$filepath);
 binmode $pg;
 my $l = 1;
 my $buf = '';
 while (defined($l) && ($l > 0))
 {
    $l = read($pg, $buf, 1024);
 
    $r->print($buf);
 
 };
 close($pg);
 exit;
 
 Это реально работающий из под mod_perl кусок кода. Вывод заголовков замени на
 вышеприведенные print-ы с нужными значениями и все должно заработать.
 
 С уважением, Andrew.
 
 --- GoldED+/LNX 1.1.4.7
  * Origin:  (2:5026/29)
 
 

Вернуться к списку тем, сортированных по:

 Тема:    Автор:    Дата:  
 Передать данные   Dmitry A. Nikitin   15 Jan 2004 02:57:56 
 Re: Передать данные   Artem Chuprina   15 Jan 2004 16:54:24 
 Re: Передать данные   Dmitry A. Nikitin   15 Jan 2004 17:35:14 
 Re: Передать данные   Artem Chuprina   15 Jan 2004 20:19:27 
 Re: Передать данные   Dmitry A. Nikitin   15 Jan 2004 21:01:59 
 Re: Передать данные   Artem Chuprina   15 Jan 2004 21:54:50 
 Re: Передать данные   Sergey Leschenko   16 Jan 2004 11:28:20 
 Re: Передать данные   Vasiliy \'Druid\' Misharev   16 Jan 2004 17:02:32 
 Re: Передать данные   Victor Wagner   15 Jan 2004 17:38:17 
 Re: Передать данные   Dmitry A. Nikitin   15 Jan 2004 19:09:46 
 Re: Передать данные   Victor Wagner   15 Jan 2004 19:25:49 
 Re: Передать данные   Konstantin Tokar   15 Jan 2004 20:04:16 
 Re: Передать данные   Artem Chuprina   15 Jan 2004 20:19:57 
 Re: Передать данные   Dmitry A. Nikitin   15 Jan 2004 21:01:59 
 Re: Передать данные   Artem Chuprina   15 Jan 2004 21:55:50 
 Re: Передать данные   Dmitry A. Nikitin   15 Jan 2004 23:19:11 
 как получить сформированный файл с сервера ?   dmkochkin@portobello.ie   20 Jan 2004 14:51:03 
 Re: как получить сформированный файл с сервера ?   Artem Chuprina   20 Jan 2004 15:56:03 
 как получить сформированный файл с сервера ?   Andrew Velikoredchanin   20 Jan 2004 16:26:52 
 Re: как получить сформированный файл с сервера ?   Yury Kopyl   20 Jan 2004 18:08:25 
 Re: как получить сформированный файл с сервера ?   Serge Pekarsky   21 Jan 2004 12:22:35 
Архивное /ru.cgi.perl/12171400d205e.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional