Fix for ticket #2853: fix for some unknown MIME type error cases by adjusting the PEAR error handling temporarily around MIME_Type_Extension usage.
This commit is contained in:
parent
28e009898f
commit
2692b5fc84
|
@ -217,12 +217,19 @@ class File extends Memcached_DataObject
|
||||||
static function filename($profile, $basename, $mimetype)
|
static function filename($profile, $basename, $mimetype)
|
||||||
{
|
{
|
||||||
require_once 'MIME/Type/Extension.php';
|
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();
|
$mte = new MIME_Type_Extension();
|
||||||
try {
|
|
||||||
$ext = $mte->getExtension($mimetype);
|
$ext = $mte->getExtension($mimetype);
|
||||||
} catch ( Exception $e) {
|
if (PEAR::isError($ext)) {
|
||||||
$ext = strtolower(preg_replace('/\W/', '', $mimetype));
|
$ext = strtolower(preg_replace('/\W/', '', $mimetype));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Restore error handling.
|
||||||
|
PEAR::staticPopErrorHandling();
|
||||||
|
|
||||||
$nickname = $profile->nickname;
|
$nickname = $profile->nickname;
|
||||||
$datestamp = strftime('%Y%m%dT%H%M%S', time());
|
$datestamp = strftime('%Y%m%dT%H%M%S', time());
|
||||||
$random = strtolower(common_confirmation_code(32));
|
$random = strtolower(common_confirmation_code(32));
|
||||||
|
|
|
@ -278,6 +278,9 @@ class MediaFile
|
||||||
static function getUploadedFileType($f, $originalFilename=false) {
|
static function getUploadedFileType($f, $originalFilename=false) {
|
||||||
require_once 'MIME/Type.php';
|
require_once 'MIME/Type.php';
|
||||||
require_once 'MIME/Type/Extension.php';
|
require_once 'MIME/Type/Extension.php';
|
||||||
|
|
||||||
|
// We have to disable auto handling of PEAR errors
|
||||||
|
PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN);
|
||||||
$mte = new MIME_Type_Extension();
|
$mte = new MIME_Type_Extension();
|
||||||
|
|
||||||
$cmd = &PEAR::getStaticProperty('MIME_Type', 'fileCmd');
|
$cmd = &PEAR::getStaticProperty('MIME_Type', 'fileCmd');
|
||||||
|
@ -330,6 +333,8 @@ class MediaFile
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($supported === true || in_array($filetype, $supported)) {
|
if ($supported === true || in_array($filetype, $supported)) {
|
||||||
|
// Restore PEAR error handlers for our DB code...
|
||||||
|
PEAR::staticPopErrorHandling();
|
||||||
return $filetype;
|
return $filetype;
|
||||||
}
|
}
|
||||||
$media = MIME_Type::getMedia($filetype);
|
$media = MIME_Type::getMedia($filetype);
|
||||||
|
@ -344,6 +349,8 @@ class MediaFile
|
||||||
// TRANS: %s is the file type that was denied.
|
// TRANS: %s is the file type that was denied.
|
||||||
$hint = sprintf(_('"%s" is not a supported file type on this server.'), $filetype);
|
$hint = sprintf(_('"%s" is not a supported file type on this server.'), $filetype);
|
||||||
}
|
}
|
||||||
|
// Restore PEAR error handlers for our DB code...
|
||||||
|
PEAR::staticPopErrorHandling();
|
||||||
throw new ClientException($hint);
|
throw new ClientException($hint);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user