move list of mimetypes by extention to a seperate file.
This commit is contained in:
parent
f09f2d3290
commit
6935f036a5
|
@ -65,6 +65,7 @@ OC_FILESYSTEM::registerStorageType('local','OC_FILESTORAGE_LOCAL',array('datadir
|
||||||
*/
|
*/
|
||||||
class OC_FILESTORAGE_LOCAL extends OC_FILESTORAGE{
|
class OC_FILESTORAGE_LOCAL extends OC_FILESTORAGE{
|
||||||
private $datadir;
|
private $datadir;
|
||||||
|
private static $mimetypes=null;
|
||||||
public function __construct($arguments){
|
public function __construct($arguments){
|
||||||
$this->datadir=$arguments['datadir'];
|
$this->datadir=$arguments['datadir'];
|
||||||
if(substr($this->datadir,-1)!=='/'){
|
if(substr($this->datadir,-1)!=='/'){
|
||||||
|
@ -209,71 +210,14 @@ class OC_FILESTORAGE_LOCAL extends OC_FILESTORAGE{
|
||||||
$mime_type=substr($reply,0,strrpos($reply,' '));
|
$mime_type=substr($reply,0,strrpos($reply,' '));
|
||||||
}
|
}
|
||||||
if (empty($mime_type)) {
|
if (empty($mime_type)) {
|
||||||
// Fallback solution: try to guess the type by the file extension
|
// Fallback solution: (try to guess the type by the file extension
|
||||||
// TODO: add more ...
|
if(!self::$mimetypes){
|
||||||
switch (strtolower(strrchr(basename($fspath), "."))) {
|
self::$mimetypes=include('mimetypes.list.php');
|
||||||
case '.css':
|
|
||||||
$mime_type = 'text/css';
|
|
||||||
break;
|
|
||||||
case '.flac':
|
|
||||||
$mime_type = 'audio/flac';
|
|
||||||
break;
|
|
||||||
case '.gif':
|
|
||||||
$mime_type = 'image/gif';
|
|
||||||
break;
|
|
||||||
case '.gzip':
|
|
||||||
case '.gz':
|
|
||||||
$mime_type = 'application/x-gzip';
|
|
||||||
break;
|
|
||||||
case '.htm':
|
|
||||||
case '.html':
|
|
||||||
$mime_type = 'text/html';
|
|
||||||
break;
|
|
||||||
case '.jpeg':
|
|
||||||
case '.jpg':
|
|
||||||
$mime_type = 'image/jpeg';
|
|
||||||
break;
|
|
||||||
case '.js':
|
|
||||||
$mime_type = 'application/x-javascript';
|
|
||||||
break;
|
|
||||||
case '.oga':
|
|
||||||
case '.ogg':
|
|
||||||
$mime_type = 'audio/ogg';
|
|
||||||
break;
|
|
||||||
case '.ogv':
|
|
||||||
$mime_type = 'video/ogg';
|
|
||||||
break;
|
|
||||||
case '.pdf':
|
|
||||||
$mime_type = 'application/pdf';
|
|
||||||
break;
|
|
||||||
case '.png':
|
|
||||||
$mime_type = 'image/png';
|
|
||||||
break;
|
|
||||||
case '.svg':
|
|
||||||
$mime_type = 'image/svg+xml';
|
|
||||||
break;
|
|
||||||
case '.tar':
|
|
||||||
$mime_type = 'application/x-tar';
|
|
||||||
break;
|
|
||||||
case '.tgz':
|
|
||||||
$mime_type = 'application/x-compressed';
|
|
||||||
break;
|
|
||||||
case '.tif':
|
|
||||||
case '.tiff':
|
|
||||||
$mime_type = 'image/tiff';
|
|
||||||
break;
|
|
||||||
case '.txt':
|
|
||||||
$mime_type = 'text/plain';
|
|
||||||
break;
|
|
||||||
case '.zip':
|
|
||||||
$mime_type = 'application/zip';
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
$mime_type = 'application/octet-stream';
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
$extention=strtolower(strrchr(basename($fspath), "."));
|
||||||
|
$extention=substr($extention,1);//remove leading .
|
||||||
|
$mime_type=(isset(self::$mimetypes[$extention]))?self::$mimetypes[$extention]:'application/octet-stream';
|
||||||
}
|
}
|
||||||
|
|
||||||
return $mime_type;
|
return $mime_type;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,81 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* ownCloud
|
||||||
|
*
|
||||||
|
* @author Robin Appelman
|
||||||
|
* @copyright 2011 Robin Appelman icewind1991@gmail.com
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 3 of the License, or any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public
|
||||||
|
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* list of mimetypes by extention
|
||||||
|
*/
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'css'=>'text/css',
|
||||||
|
'flac'=>'audio/flac',
|
||||||
|
'gif'=>'image/gif',
|
||||||
|
'gzip'=>'application/x-gzip',
|
||||||
|
'gz'=>'application/x-gzip',
|
||||||
|
'html'=>'text/html',
|
||||||
|
'htm'=>'text/html',
|
||||||
|
'jpeg'=>'image/jpeg',
|
||||||
|
'jpg'=>'image/jpeg',
|
||||||
|
'js'=>'application/javascript',
|
||||||
|
'oga'=>'audio/ogg',
|
||||||
|
'ogg'=>'audio/ogg',
|
||||||
|
'ogv'=>'video/ogg',
|
||||||
|
'pdf'=>'application/pdf',
|
||||||
|
'png'=>'image/png',
|
||||||
|
'svg'=>'image/svg+xml',
|
||||||
|
'tar'=>'application/x-tar',
|
||||||
|
'tgz'=>'application/x-compressed',
|
||||||
|
'tar.gz'=>'application/x-compressed',
|
||||||
|
'tif'=>'image/tiff',
|
||||||
|
'tiff'=>'image/tiff',
|
||||||
|
'txt'=>'text/plain',
|
||||||
|
'zip'=>'application/zip',
|
||||||
|
'wav'=>'audio/wav',
|
||||||
|
'odt'=>'application/vnd.oasis.opendocument.text',
|
||||||
|
'ods'=>'application/vnd.oasis.opendocument.spreadsheet',
|
||||||
|
'odg'=>'application/vnd.oasis.opendocument.graphics',
|
||||||
|
'odp'=>'application/vnd.oasis.opendocument.presentation',
|
||||||
|
'kra'=>'application/x-krita',
|
||||||
|
'mp3'=>'audio/mpeg',
|
||||||
|
'doc'=>'application/msword',
|
||||||
|
'docx'=>'application/msword',
|
||||||
|
'xls'=>'application/msexcel',
|
||||||
|
'xlsx'=>'application/msexcel',
|
||||||
|
'php'=>'application/x-php',
|
||||||
|
'exe'=>'application/x-ms-dos-executable',
|
||||||
|
'pl'=>'application/x-pearl',
|
||||||
|
'py'=>'application/x-python',
|
||||||
|
'blend'=>'application/x-blender',
|
||||||
|
'xcf'=>'application/x-gimp',
|
||||||
|
'psd'=>'application/x-photoshop',
|
||||||
|
'xml'=>'application/xml',
|
||||||
|
'avi'=>'video/x-msvideo',
|
||||||
|
'dv'=>'video/dv',
|
||||||
|
'm2t'=>'video/mp2t',
|
||||||
|
'mp4'=>'video/mp4',
|
||||||
|
'm4v'=>'video/mp4',
|
||||||
|
'mpg'=>'video/mpeg',
|
||||||
|
'mpeg'=>'video/mpeg',
|
||||||
|
'mov'=>'video/quicktime',
|
||||||
|
'webm'=>'video/webm',
|
||||||
|
'wmv'=>'video/x-ms-asf'
|
||||||
|
);
|
||||||
|
?>
|
Loading…
Reference in New Issue