我碰壁了,这一次我的谷歌技术让我失望了。我正在学习如何为我经常使用的一系列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也是空的。如果有人有任何想法或指点来指导我找到解决方案,我将非常感激!
发布于 2017-06-16 14:15:47
如果我试图上传949个文件,我的数组
@fileNames被正确地填充,但是如果我试图上传950个文件,我的数组就会变成空的,而且似乎$files也是空的。
这意味着进程将耗尽文件描述符。尤其是,Linux内核的默认设置是1024。
例如,最大文件描述符(
ulimit -n)的内核缺省值是1024/1024(软的,硬的),并在Linux2.6.39中被提升为1024/4096。
https://stackoverflow.com/questions/44574566
复制相似问题