如何获得仅文件上传的CGI.PM字段列表



我过去曾使用过CGI::Simple,以便通用上传处理器。我显然使用了一种名为upload_fieldnames的内部方法,该方法返回上传的一系列字段名称。

我正在尝试调整此代码以使用CGI.PM,因为它更常用于CentOS7。我如何获得仅文件上传字段的列表?我发现的所有示例都使用已知字段名称,我不知道。其他字段可能与表格一起提交,我只需要对提供文件上传的字段采取行动。

cgi.pm不具有upload_fieldnames()方法的等效,但是您可以使用param()upload()方法的组合来合成某些内容。param()将为您提供所有参数名称的列表,您可以使用upload()检查每个参数名称是否是文件上传。

my @upload_fieldnames;
foreach (param()) {
  push @upload_fieldnames, $_ if upload($_);
}

或作为单线:

my @upload_fields = grep { upload($_) } param();

更新:我只是想对此添加评论。

我试图适应此代码使用CGI.PM,因为它更常用于CentOS 7

我不确定您的用例是什么,但是我强烈怀疑您的时间会更好地花在锻炼如何安装所需的模块而不是在没有某些模块的情况下进行工作。

如果它完全帮助您,我刚刚构建了CGI的rpm ::简单并将其上传到我的RPM存储库,请访问rpm-mag-sol.com。