[Moscow.pm] Mojolicious render xls

Alexander Lourier aml на rulezz.ru
Чт Мар 20 01:10:13 PDT 2014


Зависит от того, что такое $self->res, и как вы хотите отдавать файлы.
Если вы формируете email, то Content-type самому письму задаёте
multipart/mixed, потом к письму цепляете каждый аттач отдельным part. Если
это MIME::Entity, то примерно так:
$self->res->attach(Data => $document, Type => 'application/vnd.ms-excel',
Encoding => 'base64');
$self->res->attach(....);



2014-03-20 8:54 GMT+01:00 Artem Zhuravlev <zhuravlev.ua на gmail.com>:

>
>
> Добрый день.
>
> Столкнулся с проблемой рендеринга xls файлов.
>
> my $self = shift;
> my $dir = "/tmp/writeexcel/";
> my $template = "application";
> my $suffix = ".xls";
>
> my $filename = $dir . $template . $suffix;
> # Create a new workbook called simple.xls and add a worksheet
> my $workbook;
> $workbook  = Spreadsheet::WriteExcel->new($filename) or die "Problems
> creating new Excel file: $!" unless defined $workbook;
> my $worksheet = $workbook->add_worksheet("Заявка");
> ... формируем xls файл ...
> $workbook->close() or die "Error closing file: $!";
>
> my $document = do {
>  local $/ = undef;
> open my $fh, "<", $filename
> or die "could not open $filename: $!";
>  <$fh>;
> };
>
> $self->res->headers->content_disposition("attachment;
> filename='file.xls';");
> $self->render(data => $document);
>
> Тут все хорошо.
>
> Не знаю как быть в случае если нужно отдать сразу несколько файлов.
>
> Пните куда смотреть. Думал над тем что архивировать файлы и передать архив.
>
> Спасибо.
>
> P.S.  Суть не в самом решении, конечно не буду против, а в том куда копать.
>
> --
> Best regards,
> Artem V. Zhuravlev
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20140320/7d6ba4e3/attachment.html>


Подробная информация о списке рассылки Moscow-pm