aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/helper.php34
-rw-r--r--tests/lib/helper.php9
2 files changed, 31 insertions, 12 deletions
diff --git a/lib/helper.php b/lib/helper.php
index 225e9fd2a9a..a315c640d1a 100644
--- a/lib/helper.php
+++ b/lib/helper.php
@@ -364,6 +364,26 @@ class OC_Helper {
}
/**
+ * Try to guess the mimetype based on filename
+ *
+ * @param string $path
+ * @return string
+ */
+ static public function getFileNameMimeType($path){
+ if(strpos($path, '.')) {
+ //try to guess the type by the file extension
+ if(!self::$mimetypes || self::$mimetypes != include 'mimetypes.list.php') {
+ self::$mimetypes=include 'mimetypes.list.php';
+ }
+ $extension=strtolower(strrchr(basename($path), "."));
+ $extension=substr($extension, 1);//remove leading .
+ return (isset(self::$mimetypes[$extension]))?self::$mimetypes[$extension]:'application/octet-stream';
+ }else{
+ return 'application/octet-stream';
+ }
+ }
+
+ /**
* get the mimetype form a local file
* @param string $path
* @return string
@@ -377,17 +397,7 @@ class OC_Helper {
return "httpd/unix-directory";
}
- if(strpos($path, '.')) {
- //try to guess the type by the file extension
- if(!self::$mimetypes || self::$mimetypes != include 'mimetypes.list.php') {
- self::$mimetypes=include 'mimetypes.list.php';
- }
- $extension=strtolower(strrchr(basename($path), "."));
- $extension=substr($extension, 1);//remove leading .
- $mimeType=(isset(self::$mimetypes[$extension]))?self::$mimetypes[$extension]:'application/octet-stream';
- }else{
- $mimeType='application/octet-stream';
- }
+ $mimeType = self::getFileNameMimeType($path);
if($mimeType=='application/octet-stream' and function_exists('finfo_open')
and function_exists('finfo_file') and $finfo=finfo_open(FILEINFO_MIME)) {
@@ -609,7 +619,7 @@ class OC_Helper {
}
/**
- * remove all files in PHP /oc-noclean temp dir
+ * remove all files in PHP /oc-noclean temp dir
*/
public static function cleanTmpNoClean() {
$tmpDirNoCleanFile=get_temp_dir().'/oc-noclean/';
diff --git a/tests/lib/helper.php b/tests/lib/helper.php
index 336e8f8b3c5..6acb0dfaa6b 100644
--- a/tests/lib/helper.php
+++ b/tests/lib/helper.php
@@ -67,6 +67,15 @@ class Test_Helper extends PHPUnit_Framework_TestCase {
$this->assertEquals($result, $expected);
}
+ function testGetFileNameMimeType() {
+ $this->assertEquals('text/plain', OC_Helper::getFileNameMimeType('foo.txt'));
+ $this->assertEquals('image/png', OC_Helper::getFileNameMimeType('foo.png'));
+ $this->assertEquals('image/png', OC_Helper::getFileNameMimeType('foo.bar.png'));
+ $this->assertEquals('application/octet-stream', OC_Helper::getFileNameMimeType('.png'));
+ $this->assertEquals('application/octet-stream', OC_Helper::getFileNameMimeType('foo'));
+ $this->assertEquals('application/octet-stream', OC_Helper::getFileNameMimeType(''));
+ }
+
function testGetStringMimeType() {
$result = OC_Helper::getStringMimeType("/data/data.tar.gz");
$expected = 'text/plain; charset=us-ascii';