diff options
author | Brion Vibber <brion@pobox.com> | 2010-11-03 17:05:26 -0700 |
---|---|---|
committer | Brion Vibber <brion@pobox.com> | 2010-11-03 17:05:26 -0700 |
commit | 2692b5fc8400d04f25823e5bc00e3d4f98100a3b (patch) | |
tree | 1dca60d7902ff9fb5f008e38f3c655f5569cf6d0 /classes/File.php | |
parent | 28e009898f6ce6dd72471a5ae4abbc91e6b00193 (diff) |
Fix for ticket #2853: fix for some unknown MIME type error cases by adjusting the PEAR error handling temporarily around MIME_Type_Extension usage.
Diffstat (limited to 'classes/File.php')
-rw-r--r-- | classes/File.php | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/classes/File.php b/classes/File.php index da029e39b..c7c765802 100644 --- a/classes/File.php +++ b/classes/File.php @@ -217,12 +217,19 @@ class File extends Memcached_DataObject static function filename($profile, $basename, $mimetype) { require_once 'MIME/Type/Extension.php'; + + // We have to temporarily disable auto handling of PEAR errors... + PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); + $mte = new MIME_Type_Extension(); - try { - $ext = $mte->getExtension($mimetype); - } catch ( Exception $e) { + $ext = $mte->getExtension($mimetype); + if (PEAR::isError($ext)) { $ext = strtolower(preg_replace('/\W/', '', $mimetype)); } + + // Restore error handling. + PEAR::staticPopErrorHandling(); + $nickname = $profile->nickname; $datestamp = strftime('%Y%m%dT%H%M%S', time()); $random = strtolower(common_confirmation_code(32)); |