【问题标题】:How can I check the MIME type of an uploaded file using Perl CGI?如何使用 Perl CGI 检查上传文件的 MIME 类型?
【发布时间】:2011-02-13 07:59:46
【问题描述】:

我正在尝试使用 Perl 获取 <input type="file" /> 元素的 MIME 类型,但没有实际检查文件本身的内容,换句话说,只使用 HTTP 标头。

我只能获得“multipart/form-type”Content-Type 值,但我的理解是每个元素都会获得自己的 MIME 类型?

如何使用 Perl 查看子 MIME 类型?

【问题讨论】:

    标签: perl upload file-upload cgi


    【解决方案1】:

    我假设您正在使用CGI.pm 来执行此操作。如果您使用 CGI 的 OO 接口,您可以执行以下操作。

    use strict;
    use warnings;
    use CGI;
    
    my $cgi = CGI->new;
    
    my $filename = $cgi->param('upload_param_name');
    my $mimetype = $cgi->uploadInfo($filename)->{'Content-Type'};
    

    如果您使用的是过程接口,则等效为:

    use strict;
    use warnings;
    use CGI qw/param uploadInfo/;
    
    
    my $filename = param('upload_param_name');
    my $mimetype = uploadInfo($filename)->{'Content-Type'};
    

    【讨论】:

    • 这不显示真正的 mime 类型。如果您只是拆分名称,它只会显示相同的输出。我的意思是这是非常不安全的方法,因为很容易通过将扩展名更改为系统的“有效”来欺骗它。但在现实中可能会有完全不同的内容。所以,是的,试试 Padre::MIME。它有更多选择可以为您做得更好。
    猜你喜欢
    • 2021-08-09
    • 1970-01-01
    • 2014-02-20
    • 1970-01-01
    • 2011-08-06
    • 2018-11-24
    相关资源
    最近更新 更多