public function __construct()
 {
     Validator::extend('skinmimes', function ($attribute, $value, $parameters) {
         $allowed = array('audio/mpeg', 'image/jpeg', 'application/ogg', 'audio/wave', 'audio/aiff', 'image/png', 'text/plain');
         $mime = new MimeReader($value->getRealPath());
         return in_array($mime->get_type(), $allowed);
     });
 }
 /**
  * @name validateFile Comprueba un ARCHIVO que este en el DISCO
  * Si quieres comprobar archivos subidos puedes utilizar "validateUploadedFile" para agilizar la carga
  * @param string $file Path to file to validate
  * @param string/array $type Especifica el/los tipos de ficheros que se aceptan
  */
 public function validateFile($file, $type = '', $testExtensions = true)
 {
     $mime = new MimeReader($file);
     return $this->validate($file, $mime->get_type(), $type, $testExtensions);
 }
Beispiel #3
0
 /**
  * Returns the mime type of a file
  *
  * @param string $file
  * @return mixed
  */
 public static function mime($file)
 {
     // stop for invalid files
     if (!file_exists($file)) {
         return null;
     }
     // Fileinfo is prefered if available
     if (function_exists('finfo_file')) {
         $finfo = finfo_open(FILEINFO_MIME_TYPE);
         $mime = finfo_file($finfo, $file);
         finfo_close($finfo);
         return $mime;
     }
     // for older versions with mime_content_type go for that.
     if (function_exists('mime_content_type') && ($mime = @mime_content_type($file) !== false)) {
         return $mime;
     }
     // shell check
     try {
         $mime = system::execute('file', [$file, '-z', '-b', '--mime'], 'output');
         $mime = trim(str::split($mime, ';')[0]);
         if (f::mimeToExtension($mime)) {
             return $mime;
         }
     } catch (Exception $e) {
         // no mime type detectable with shell
         $mime = null;
     }
     // Mime Sniffing
     $reader = new MimeReader($file);
     $mime = $reader->get_type();
     if (!empty($mime) && f::mimeToExtension($mime)) {
         return $mime;
     }
     // guess the matching mime type by extension
     return f::extensionToMime(f::extension($file));
 }
Beispiel #4
0
<?php

include '../mimereader.class.php';
$files = array('./image.jpg', './image.png', './image.gif', './image.bmp', './Test.pdf');
echo '<table>';
foreach ($files as $file) {
    $fp = fopen($file, 'r');
    $buffer = fread($fp, 16);
    fclose($fp);
    echo '<tr><td>' . $file . '</td><td>';
    $type = '<b>UNKNOWN</b>';
    $reader = new MimeReader($file);
    echo $reader->get_type() . '</td></tr>';
}
echo '</table>';