/** * Get the mime type primary key for a specific mime type * * @param string detected mime type * @param string filename * @return int mime type primary key if found, else default mime type primary key (text/plain) */ function getMimeTypeID($sMimeType, $sFileName, $sTempFile = null) { global $default; $sTable = KTUtil::getTableName('mimetypes'); // check by file extension $sExtension = KTMime::stripAllButExtension($sFileName); $res = DBUtil::getOneResultKey(array("SELECT id FROM " . $sTable . " WHERE LOWER(filetypes) = ?", array($sExtension)), 'id'); if (PEAR::isError($res) || empty($res)) { // pass ?! } else { return $res; } // get the mime type id if (isset($sMimeType)) { $res = DBUtil::getResultArray(array("SELECT id FROM " . $sTable . " WHERE mimetypes = ?", array($sMimeType))); if (PEAR::isError($res)) { // pass ?! } if (count($res) != 0) { return $res[0]['id']; } } if (!is_null($sTempFile)) { // The default is a binary file, so if mime magic can resolve better, lets try... $sMimeType = KTMime::getMimeTypeFromFile($sTempFile); if (!empty($sMimeType)) { $res = DBUtil::getResultArray(array("SELECT id FROM " . $sTable . " WHERE mimetypes = ?", array($sMimeType))); if (PEAR::isError($res)) { // pass ?! } if (count($res) != 0) { return $res[0]['id']; } } } //otherwise return the default mime type return KTMime::getDefaultMimeTypeID(); }