perl - 如何获取仅用于文件上传的 CGI.pm 字段列表?

标签 perl cgi cgi.pm

我过去曾使用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();

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

I am trying to adapt this code to use CGI.pm, because it is more commonly available for CentOS 7

我不确定您的用例是什么,但我强烈怀疑您的时间最好花在如何安装所需的模块上,而不是解决缺少某些模块的问题。

如果它对你有帮助的话,我刚刚构建了一个 CGI::Simple 的 RPM 并将其上传到我的 RPM 存储库 rpm-mag-sol.com .

关于perl - 如何获取仅用于文件上传的 CGI.pm 字段列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53827798/

相关文章:

perl - Web 服务器如何解释 ".cgi"?

c++ - "Connection was broken"UDT 错误(基于 UDP 的数据传输协议(protocol))

perl CGI.pm : lists vs strings to build pages

javascript - 在 cgi.pm 中包含内部 javascript

javascript - Perl 的 WWW::Mechanize 如何扩展用 JavaScript 添加到自身的 HTML 页面?

perl - 如何删除具有特定字符的整个数组

python - 如何查找旧的大文件并为包含这些文件的目录生成指标

perl - 如何创建 Unix 域套接字?

perl - 尝试在 Apache 2.4.6 Ubuntu 13.10 上运行 perl cgi 文件时出现 500 内部服务器错误