我过去曾使用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/