我正在编写一个文件上传处理程序 Catalyst。我正在尝试限制最大文件大小。为此,我制作了一个插件(基于此处的答案)。这是我检查文件大小的代码:
before 'prepare_body' => sub {
my $c = shift;
my $req = $c->request;
my $length = $req->headers->{"content-length"};
if ($length > 10000)
{
$c->stash->{errors} = "File upload error";
# how do I abort the upload?
}
};
这可以正确检测太大的文件,但我一生都无法弄清楚如何中止上传。理想情况下,它也应该到达控制器/动作。谁能给我指点?非常感谢。