【问题标题】:How can I make a Mojolicious::Lite static file downloader?如何制作 Mojolicious::Lite 静态文件下载器?
【发布时间】:2013-01-15 02:54:22
【问题描述】:

我正在尝试使用 Mojolicious::Lite 制作文件上传/下载器,虽然上传部分没有问题,但下载部分却造成了麻烦。此代码将让我下载小文本文件,但其他任何内容都会变成 0 字节文件。有关如何正确执行此操作的任何建议?

get '/download/:file' => sub {
    my $self = shift;
    my $file = $self->param('file');
    $self->res->headers->content_type("application/x-download");
    $self->res->content->asset(Mojo::Asset::File->new(path => "./testdir/$file"));
    $self->rendered;
};

【问题讨论】:

    标签: perl mojolicious mojolicious-lite


    【解决方案1】:

    您可以安装插件Mojolicious::Plugin::RenderFile 来简化此操作。

    plugin 'RenderFile';
    
    get '/download/:file' => sub {
      my $self = shift;
      my $file = $self->param('file');
      $self->render_file('filepath' => "./testdir/$file");
    };
    

    【讨论】:

      【解决方案2】:

      Joel Berger posted this little program to start a web server to serve local files,效果很好:

      use Mojolicious::Lite;
      
      @ARGV = qw(daemon);
      
      use Cwd;
      app->static->paths->[0] = getcwd;
      
      any '/' => sub {
          shift->render_static('index.html');
          };
      
      app->start;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-02
        • 2020-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多