2

CGI::Simple过去曾使用过通用上传处理器。我显然使用了一个名为 的内部方法upload_fieldnames,它返回一个上传的字段名称数组。

我正在尝试修改此代码以使用 CGI.pm,因为它更常用于 CentOS 7。我如何获得仅包含文件上传字段的列表?我发现的所有示例都使用已知的字段名称,而我事先并不知道。其他字段可能与表单一起提交,我只需要对提供文件上传的字段进行操作。

4

1 回答 1

4

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 存储库。

于 2018-12-18T08:42:05.830 回答