[Catalyst] Out of Memory - File delivery issue

neil.lunn neil at mylunn.id.au
Thu May 2 09:28:57 GMT 2013

On 2/05/2013 5:54 PM, Craig Chant wrote:
> Hi,
> I understand that Catalyst has a known issue with delivering =

> authenticated files via the response mechanism.
> What does the Catalyst community do to work around this problem?
> If I want to read a large file from disk or collate a large CSV / XML =

> file and deliver it direct to the browser, how do I do this?

Though you do not say what you are currently trying do do, I'm presuming =

your problem is related to trying to stuff the content into =

$c->res->body or otherwise pull into stash. But what it sounds like with =

large content is that you just want to stream it. $c->res will act like =

a filehandle in this case, so anything expecting a filehandle will be =

able to use it.

Example code:
package Quick::Controller::Sample;
use Moose;
use namespace::autoclean;

BEGIN { extends 'Catalyst::Controller' };

sub index :Path :Args(0) {
   my ( $self, $c ) =3D @_;

   use XML::Writer;

   my $writer =3D XML::Writer->new(
     OUTPUT      =3D> $c->res,
     DATA_INDENT =3D> 2,
     DATA_MODE   =3D> 1

                     "class" =3D> "simple");
   $writer->characters("Hello, world!");


# Override default end

sub end : Private {}


Noting the override of the end() action in the controller so nothing is =

passed to RenderView.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20130502/2439c=

More information about the Catalyst mailing list