diff --git a/includes/datastream.inc b/includes/datastream.inc index 592870b7..edc0026b 100644 --- a/includes/datastream.inc +++ b/includes/datastream.inc @@ -52,7 +52,6 @@ function islandora_view_datastream(AbstractDatastream $datastream, $download = F } if ($download) { // Browsers will not append all extensions. - $mime_detect = new MimeDetect(); $extension = '.' . islandora_get_extension_for_mimetype($datastream->mimetype); // Prevent adding on a duplicate extension. $label = $datastream->label; diff --git a/includes/datastream.version.inc b/includes/datastream.version.inc index 83a94aef..e97640d4 100644 --- a/includes/datastream.version.inc +++ b/includes/datastream.version.inc @@ -275,21 +275,23 @@ function islandora_get_object_extensions(AbstractObject $object) { function islandora_datastream_version_replace_form($form, &$form_state, AbstractDatastream $datastream) { module_load_include('inc', 'islandora', 'includes/content_model'); module_load_include('inc', 'islandora', 'includes/utilities'); + module_load_include('inc', 'islandora', 'includes/mimetype.utils'); $object = islandora_object_load($datastream->parent->id); $form_state['object_id'] = $object->id; $form_state['dsid'] = $datastream->id; $form_state['object'] = $object; $datastream_mime_map = islandora_get_object_extensions($object); - $mime_detect = new MimeDetect(); - $ext = array(); - if (isset($datastream_mime_map[$datastream->id])) { - foreach ($datastream_mime_map[$datastream->id]['mime'] as $key => $value) { - $extensions = $mime_detect->getValidExtensions($value); - $ext = array_merge($ext, $extensions); - } + $current_mime = $datastream->mimetype; + $mimes = $datastream_mime_map[$datastream->id]['mime']; + if (!in_array($current_mime, $mimes)) { + $mimes[] = $current_mime; + } + $extensions = array(); + foreach ($mimes as $mime) { + $extensions = array_merge($extensions, islandora_get_extensions_for_mimetype($mime)); } - $valid_extensions = implode(' ', $ext); + $valid_extensions = implode(' ', $extensions); $upload_size = min((int) ini_get('post_max_size'), (int) ini_get('upload_max_filesize')); return array( 'dsid_fieldset' => array( diff --git a/includes/mimetype.utils.inc b/includes/mimetype.utils.inc index 989c55cd..1a20859d 100644 --- a/includes/mimetype.utils.inc +++ b/includes/mimetype.utils.inc @@ -1,4 +1,5 @@