gpt4 book ai didi

perl - 如何根据内容长度或 MIME 类型中止 Catalyst 上传?

转载 作者:行者123 更新时间:2023-12-04 07:05:27 25 4
gpt4 key购买 nike

我尝试使用 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...
}

这是进行上传验证的正确方法吗?

最佳答案

Catalyst 在发送到您的操作之前处理上传。你需要在请求处理过程中更早地拦截,我怀疑这意味着一个插件。

我不是 Catalyst 上传方面的专家,但可能已经有一些东西可以做到这一点,所以值得在 cpan 上搜索一下……但如果不是,我会看看 Upload Progress 是如何做到的。插件做它所做的来获取当前上传的状态。您应该能够以类似的方式终止上传。

杰伊克

关于perl - 如何根据内容长度或 MIME 类型中止 Catalyst 上传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1169264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com