[239] | 1 | <?php
|
---|
| 2 |
|
---|
| 3 | /** This file is part of KCFinder project
|
---|
| 4 | *
|
---|
| 5 | * @desc MIME type detection class
|
---|
| 6 | * @package KCFinder
|
---|
| 7 | * @version 2.51
|
---|
| 8 | * @author Pavel Tzonkov <pavelc@users.sourceforge.net>
|
---|
| 9 | * @copyright 2010, 2011 KCFinder Project
|
---|
| 10 | * @license http://www.opensource.org/licenses/gpl-2.0.php GPLv2
|
---|
| 11 | * @license http://www.opensource.org/licenses/lgpl-2.1.php LGPLv2
|
---|
| 12 | * @link http://kcfinder.sunhater.com
|
---|
| 13 | */
|
---|
| 14 |
|
---|
| 15 | class type_mime {
|
---|
| 16 |
|
---|
| 17 | public function checkFile($file, array $config) {
|
---|
| 18 | if (!class_exists("finfo"))
|
---|
| 19 | return "Fileinfo PECL extension is missing.";
|
---|
| 20 |
|
---|
| 21 | if (!isset($config['params']))
|
---|
| 22 | return "Undefined MIME types.";
|
---|
| 23 |
|
---|
| 24 | $finfo = strlen($config['mime_magic'])
|
---|
| 25 | ? new finfo(FILEINFO_MIME, $config['mime_magic'])
|
---|
| 26 | : new finfo(FILEINFO_MIME);
|
---|
| 27 | if (!$finfo)
|
---|
| 28 | return "Opening fileinfo database failed.";
|
---|
| 29 |
|
---|
| 30 | $type = $finfo->file($file);
|
---|
| 31 | $type = substr($type, 0, strrpos($type, ";"));
|
---|
| 32 |
|
---|
| 33 | $mimes = $config['params'];
|
---|
| 34 | if (substr($mimes, 0, 1) == "!") {
|
---|
| 35 | $mimes = trim(substr($mimes, 1));
|
---|
| 36 | return in_array($type , explode(" ", $mimes))
|
---|
| 37 | ? "You can't upload such files."
|
---|
| 38 | : true;
|
---|
| 39 | }
|
---|
| 40 |
|
---|
| 41 | return !in_array($type , explode(" ", $mimes))
|
---|
| 42 | ? "You can't upload such files."
|
---|
| 43 | : true;
|
---|
| 44 | }
|
---|
| 45 | }
|
---|
| 46 |
|
---|
| 47 | ?> |
---|