+// Match by our supported file extensions
+function common_supported_ext_to_mime($fileext)
+{
+ // Accept a filename and take out the extension
+ if (strpos($fileext, '.') !== false) {
+ $fileext = substr(strrchr($fileext, '.'), 1);
+ }
+
+ $supported = common_config('attachments', 'supported');
+ foreach($supported as $type => $ext) {
+ if ($ext === $fileext) {
+ return $type;
+ }
+ }
+
+ throw new ServerException('Unsupported file extension');
+}
+
+// Match by our supported mime types
+function common_supported_mime_to_ext($mimetype)
+{
+ $supported = common_config('attachments', 'supported');
+ foreach($supported as $type => $ext) {
+ if ($mimetype === $type) {
+ return $ext;
+ }
+ }
+
+ throw new ServerException('Unsupported MIME type');
+}
+
+// The MIME "media" is the part before the slash (video in video/webm)
+function common_get_mime_media($type)
+{
+ $tmp = explode('/', $type);
+ return strtolower($tmp[0]);
+}
+