2014-04-01 135 views
3

我是一个大型的日志文件,并希望用浏览器使用Mojolicious打开它。我的客户将点击链接,我想从服务器读取文件内容并将其返回给用户。我用下面的技巧来解决这个问题:Perl Mojolicious渲染大文本文件

my $res = `cat $file`; 
if (! $res) { 
    $self->render(text => "An error while trying to read the log file. \nPlease try to refresh the page."); 
} 
else { 
    $self->render(text => $res); 
} 

现在 - 我有一个大的文件,在读取时它,我总是得到一个内存不足的错误。

如何将大文件内容呈现给用户?

我试图解决这个问题:

$self->res->headers->content_type('text/plain'); 
$self->res->content->asset(Mojo::Asset::File->new(path => file)); 
$self->rendered(200); 

它解决了问题,但它需要大量的时间,直到它读取文件内容,并显示在浏览器中的结果。

在页面还在加载时如何向用户显示文件内容?

谢谢。

回答