The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

File::Type - determine file type using magic

SYNOPSIS

my $ft = File::Type->new();

# read in data from file to $data, then my $type_from_data = $ft->checktype_data($data);

# alternatively, check file from disk my $type_from_file = $ft->checktype_filename($file);

DESCRIPTION

File::Type uses magic numbers (typically at the start of a file) to determine the MIME type of that file.

File::Type can use either a filename, or file contents, to determine the type of a file.

METHODS

new

Returns a new File::Type object.

checktype_filename($filename)

Opens $filename (if possible) and returns the MIME type of the file.

checktype_contents($data)

Matches $data against the magic database criteria and returns the MIME type of the file.

TODO

    * Add additional magic match criteria

    * Automatically find MIME type whether passed data or a filename.

BUGS

None known.

NOTES

Some magic definitions in the mime-magic file used in the creation of this module vary from those in other apps (eg image/x-png not image/png).

SEE ALSO

File::MMagic and File::MimeInfo perform the same job, but have a number of problems that led to the creation of this module.

File::MMagic inlines a copy of the magic database, and uses a DATA filehandle, which causes problems when running under mod_perl.

File::MimeInfo uses an external magic file, and relies on file extensions rather than magic to determine the mime type.

As a result, File::Type uses a seperate module and script to create the code at the core of this module, which means that there is no need to include a magic database at all, and that it is safe to run under mod_perl.

File::Type::Builder, which generates the code at the heart of this module.

ACKNOWLEDGMENTS

File::Type is built from a mime-magic file from clearcode.org. The original can be found at http://cleancode.org/cgi-bin/viewcvs.cgi/email/mime-magic.mime?rev=1.1.1.1.

AUTHOR

Paul Mison <pmison@fotango.com>

COPYRIGHT

Copyright 2003 Fotango Ltd.

LICENSE

Licensed under the same terms as Perl itself.