From cacd1a46eee204379cb283eca3b139aed4699dfa Mon Sep 17 00:00:00 2001 From: Luc Didry Date: Mon, 17 Feb 2014 21:08:05 +0100 Subject: [PATCH] Better filetype detection --- cpanfile | 2 +- cpanfile.snapshot | 31 +++++++++++++++++-------------- lib/Lutim.pm | 7 ++++--- 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/cpanfile b/cpanfile index df7bc12..d2361c8 100644 --- a/cpanfile +++ b/cpanfile @@ -2,5 +2,5 @@ requires 'Mojolicious'; requires 'Data::Validate::URI'; requires 'Mojolicious::Plugin::I18N'; requires 'ORLite'; -requires 'MIME::Types'; +requires 'File::Type'; requires 'Text::Unidecode'; diff --git a/cpanfile.snapshot b/cpanfile.snapshot index 8b7a9ed..6a8fe88 100644 --- a/cpanfile.snapshot +++ b/cpanfile.snapshot @@ -148,6 +148,14 @@ DISTRIBUTIONS File::Spec 3.29 Test::More 0.42 perl 5.00503 + File-Type-0.22 + pathname: P/PM/PMISON/File-Type-0.22.tar.gz + provides: + File::Type 0.22 + File::Type::Builder 0.11 + requirements: + IO::File 0.01 + Test::More 0.01 IPC-Run3-0.046 pathname: R/RJ/RJBS/IPC-Run3-0.046.tar.gz provides: @@ -156,16 +164,6 @@ DISTRIBUTIONS ExtUtils::MakeMaker 0 Test::More 0.31 Time::HiRes 0 - MIME-Types-2.04 - pathname: M/MA/MARKOV/MIME-Types-2.04.tar.gz - provides: - MIME::Type 2.04 - MIME::Types 2.04 - requirements: - ExtUtils::MakeMaker 0 - File::Basename 0 - File::Spec 0 - Test::More 0.47 Module-Build-0.4205 pathname: L/LE/LEONT/Module-Build-0.4205.tar.gz provides: @@ -221,8 +219,8 @@ DISTRIBUTIONS Text::ParseWords 0 perl 5.006001 version 0.87 - Mojolicious-4.79 - pathname: S/SR/SRI/Mojolicious-4.79.tar.gz + Mojolicious-4.81 + pathname: S/SR/SRI/Mojolicious-4.81.tar.gz provides: Mojo undef Mojo::Asset undef @@ -241,7 +239,6 @@ DISTRIBUTIONS Mojo::DOM undef Mojo::DOM::CSS undef Mojo::DOM::HTML undef - Mojo::DOM::Node undef Mojo::Date undef Mojo::EventEmitter undef Mojo::Exception undef @@ -286,7 +283,7 @@ DISTRIBUTIONS Mojo::UserAgent::Server undef Mojo::UserAgent::Transactor undef Mojo::Util undef - Mojolicious 4.79 + Mojolicious 4.81 Mojolicious::Command undef Mojolicious::Command::cgi undef Mojolicious::Command::cpanify undef @@ -414,3 +411,9 @@ DISTRIBUTIONS Test::Builder::Tester 1.02 Test::More 0.62 blib 0 + Text-Unidecode-0.04 + pathname: S/SB/SBURKE/Text-Unidecode-0.04.tar.gz + provides: + Text::Unidecode 0.04 + requirements: + ExtUtils::MakeMaker 0 diff --git a/lib/Lutim.pm b/lib/Lutim.pm index f36aecb..a766dfb 100644 --- a/lib/Lutim.pm +++ b/lib/Lutim.pm @@ -1,7 +1,7 @@ package Lutim; use Mojo::Base 'Mojolicious'; use LutimModel; -use MIME::Types 'by_suffix'; +use File::Type; use Mojo::Util qw(quote); use Mojo::JSON;; use Digest::file qw(digest_file_hex); @@ -130,13 +130,14 @@ sub startup { my $c = shift; my $upload = $c->param('file'); - my ($mediatype, $encoding) = by_suffix $upload->filename; + my $ft = File::Type->new(); + my $mediatype = $ft->mime_type($upload->slurp()); my $ip = $c->ip; my ($msg, $short); # Check file type - if (index($mediatype, 'image') >= 0) { + if (index($mediatype, 'image/') >= 0) { # Create directory if needed mkdir('files', 0700) unless (-d 'files');