我怎样才能中止基于内容长度或MIME类型催化下上传?(How can I abort a Catal

2019-09-20 08:16发布

我试图用parse_on_demand如图: http://search.cpan.org/~flora/Catalyst-Runtime-5.80007/lib/Catalyst.pm#ON-DEMAND_PARSER

不过,我似乎无法停止上传。 我只是通过创建立刻死亡,但是浏览器似乎上传我选择了非常大的文件,它曾经达到我的动作之前的动作测试此:

sub upload :Local {
    my ($self, $c) = @_;
    die;

    # What I'd like to do is this:
    # if ($c->req->header('Content-Length') > $some_limit) {
    #    die "Upload too large";
    # }
    # ... check filename extension and mime-type...
}

这是接近上传验证的正确方法?

Answer 1:

催化剂派遣到你的动作之前处理上载。 您将需要拦截先前在请求处理过程,这意味着一个插件,我怀疑。

我不是有催化上传的专家,但可能有东西在那里,已经这样做了,所以它的价值在CPAN搜索......但如果不是我想看看如何上传进度插件做什么,它对得到当前上传状态。 您应该能够杀死以类似的方式上传。

JayK



Answer 2:

还看HTML :: FormHandler ::型号:: DBIC内它内置的验证它处理这两种情况下你。



文章来源: How can I abort a Catalyst upload based on Content-Length or MIME-Type?