From EPrints Documentation
Revision as of 18:29, 11 August 2009 by Tdb01r (talk | contribs) (New page: <!-- Pod2Wiki=_preamble_ This page has been automatically generated from the EPrints source. Any wiki changes made between the 'Pod2Wiki=*' and 'End of Pod2Wiki' comments will be lost. -...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Latest Source Code (3.4, 3.3) | Revision Log | Before editing this page please read Pod2Wiki


File::Type - determine file type using magic


   my $ft = File::Type->new();
   # read in data from file to $data, then
   my $type_from_data = $ft->checktype_contents($data);
   # alternatively, check file from disk
   my $type_from_file = $ft->checktype_filename($file);
   # convenient method for checking either a file or data
   my $type_1 = $ft->mime_type($file);
   my $type_2 = $ft->mime_type($data);


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.



Returns a new File::Type object.


Takes either data or a filename, determines what it is, and passes the argument through to the relevant method below. If the argument is a directory, returns undef.


Opens $filename (if possible; if not, returns undef) and returns the MIME type of the file.


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



None known.


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).


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.


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


Paul Mison <pmison@fotango.com>


Copyright 2003-2004 Fotango Ltd.


Licensed under the same terms as Perl itself.