2008/8/19 Dermot <[EMAIL PROTECTED]>: > 2008/8/19 Carl Franks <[EMAIL PROTECTED]>: >> 2008/8/19 Dermot <[EMAIL PROTECTED]>: >>> sub downloadFile { >>> >>> my ($name, $filepath) = @_; >>> >>> my $length = (stat($filepath))[7]; >>> my $res = $c->response; >>> $res->content_length($length); >>> >>> $res->headers->({ 'Content-Disposition' => >>> "attachment;filename=$name"} ); # CODE ref error >>> >>> $res->sendfile($filepath,0,$length); # Ok no such method but >>> hopefully you'll get what I mean. >>> >>> } >> >> open my $filehandle, '<', $filepath >> or die $!; >> >> $c->response->body( $filehandle ); > > > Sorry. I mustn't be making myself clear. > > I want the browser to offer the user a 'save as' dialogue box. The > modperl equivalent would be the RequestIO::sendfile > > The above sends the contents of filepath to the browser
Ah, ok. You should have used header(). headers() returns the HTTP::Headers object, which you were overwriting. $c->response->header( 'Content-Disposition' => "attachment;filename=$name" ); You'll still need the body($fh) bit to send the data, too. Carl _______________________________________________ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/