如何获取仅文件上传的 CGI.pm 字段列表?
How do I get a list of CGI.pm fields that are only file uploads?
我过去曾使用 CGI::Simple
作为通用上传处理器。我显然使用了一个名为 upload_fieldnames
的内部方法,其中 returns 一个上传的字段名称数组。
我正在尝试调整此代码以使用 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。
我过去曾使用 CGI::Simple
作为通用上传处理器。我显然使用了一个名为 upload_fieldnames
的内部方法,其中 returns 一个上传的字段名称数组。
我正在尝试调整此代码以使用 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。