我CGI::Simple
过去曾使用过通用上传处理器。我显然使用了一个名为 的内部方法upload_fieldnames
,它返回一个上传的字段名称数组。
我正在尝试修改此代码以使用 CGI.pm,因为它更常用于 CentOS 7。我如何获得仅包含文件上传字段的列表?我发现的所有示例都使用已知的字段名称,而我事先并不知道。其他字段可能与表单一起提交,我只需要对提供文件上传的字段进行操作。
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::Simple 的 RPM,并将其上传到我在rpm-mag-sol.com的 RPM 存储库。