【发布时间】:2017-06-15 18:34:09
【问题描述】:
我碰壁了,这次我的谷歌技能让我失望了。我正在学习 mojolicious,以便为我经常使用的一系列 Perl 脚本创建一个有用的前端。我已经走了很长一段路,但是当文件总数达到 950 个时,我对(多个)文件上传感到困惑。
以前,我遇到了一个问题,即在多个文件上传时,文件将开始上传,但一旦文件大小达到 16 mb,上传就会停止。我通过设置 $ENV{MOJO_MAX_MESSAGE_SIZE} = 50000000000 解决了这个问题。但是,这个问题是不同的。为了说明,这是我尝试抓取上传文件的脚本的一部分:
my $files = $self->req->every_upload('localfiles');
for my $file ( @{$files} ) {
my $fileName = $file->filename =~ s/[^\w\d\.]+/_/gr;
$file->move_to("temporary_uploads/$fileName");
$self->app->log->debug("$fileName uploaded\n");
push @fileNames, $fileName;
};
say "FILES: ".scalar(@fileNames);
我很抱歉它可能很丑。如果我尝试上传 949 个文件,我的数组 @fileNames 会正确填充,但如果我尝试上传 950 个文件,我的数组最终会是空的,而且似乎 $files 也是空的。如果有人有任何想法或指示可以指导我找到解决方案,我将非常感激!
【问题讨论】:
-
是否有另一台服务器可以包装您的 Mojolicious 应用程序?该服务器可能有一个请求大小上限,您可能会也可能无法更改。 Here's an example for nginx.
-
您的服务器可以处理多少 4.99 GB 的上传?
-
@SinanÜnür 实际上...上传> 5gb的单个文件没问题...让我更加困惑!
-
通过更新,我现在发现这不是文件大小问题,而是文件数量的问题——我可以上传 949 个 1 字节文件,但不能上传 950 个
-
感谢@SinanÜnür 的指点——事实证明这实际上与 mojolicious 无关——我不得不增加每个进程的打开文件描述符的数量!我已经解决了这个问题-感谢您的指点!
标签: perl file-upload mojolicious mojolicious-lite