首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >哪个Perl模块将文件扩展名(.txt,.jpeg)转换为mime类型(文本/纯文本、图像/jpeg)?

哪个Perl模块将文件扩展名(.txt,.jpeg)转换为mime类型(文本/纯文本、图像/jpeg)?
EN

Stack Overflow用户
提问于 2014-04-03 03:45:30
回答 2查看 1.1K关注 0票数 0

哪个Perl模块将文件扩展名(.txt,.jpeg)转换为mime类型(文本/纯文本、图像/jpeg)?

我想要

代码语言:javascript
代码运行次数:0
运行
复制
my $mime = file_to_mime ("some.txt");
# $mime = 'text/plain'
EN

回答 2

Stack Overflow用户

发布于 2014-04-03 08:39:57

虽然davewood的答案是正确的,但它做了很多检查,并使事情非常明确。MIME::Types做了一件正确的事!

不需要拆分文件名来提取文件扩展名。如果您提供了一个扩展名文件名,它将自动提取它。如果文本没有扩展名,那么它将使用该字符串作为扩展名。

代码语言:javascript
代码运行次数:0
运行
复制
use strict;
use warnings;

use MIME::Types; # by Mark Overmeer

my $filename = "some.txt";

my $MIME_Types = MIME::Types->new;

my $mimetype = $MIME_Types->mimeTypeOf($filename)
    or die "Could not find MIME type for '$filename'";

print "Filename '$filename' of MIME type '$mimetype'\n";

注意:从不只依赖于扩展名,您可以考虑自省文件本身的File::Type,或者最近的模块File::MimeInfo::Magic

票数 5
EN

Stack Overflow用户

发布于 2014-04-03 05:56:39

编辑: Th.J.的答案可能更好。(https://stackoverflow.com/a/22832209/1702521),但为了完整起见,我将保留我的编辑。

代码语言:javascript
代码运行次数:0
运行
复制
#!/usr/bin/env perl
use strict;
use warnings;
use feature qw/ say /;
use MIME::Types;

my $file = "foo.txt";

my $mime_types = MIME::Types->new( only_complete => 1 );
$mime_types->create_type_index;

my ($ext) = $file =~ /\.(.+?)$/;

die "Could not find file extension. (" . $file . ")"
  unless defined $ext;

my $content_type = $mime_types->mimeTypeOf($ext);

die "No content-type found for '$ext'"
  unless defined $content_type;


say $content_type;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22827465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档