Skip to content
This repository was archived by the owner on Sep 10, 2021. It is now read-only.

Commit e65c0ed

Browse files
author
Jamie Snape
committed
Always use fileinfo as it is now available on App Engine
1 parent 1fb1167 commit e65c0ed

File tree

3 files changed

+10
-182
lines changed

3 files changed

+10
-182
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
},
1313
"require": {
1414
"php": ">=5.3.9",
15+
"ext-fileinfo": "*",
1516
"ext-gd": "*",
1617
"ext-json": "*",
1718
"erusev/parsedown-extra": "^0.7.0",
@@ -41,7 +42,6 @@
4142
"symfony/console": "^2.7.5"
4243
},
4344
"suggest": {
44-
"ext-fileinfo": "*",
4545
"ext-imagick": "*",
4646
"ext-ldap": "*",
4747
"ext-memcached": "*",

core/controllers/components/MimeTypeComponent.php

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,19 @@
2222
class MimeTypeComponent extends AppComponent
2323
{
2424
/**
25-
* Get mime type.
25+
* Get MIME type.
2626
*
2727
* @param string $filename
2828
* @param null|string $alternateName
2929
* @return string
3030
*/
3131
public function getType($filename, $alternateName = null)
3232
{
33-
if (function_exists('finfo_open') && file_exists($filename)) {
33+
if (file_exists($filename)) {
3434
$fileInfo = finfo_open(FILEINFO_MIME_TYPE);
3535
$mimeType = finfo_file($fileInfo, $filename);
3636
finfo_close($fileInfo);
37-
if ($mimeType) {
37+
if ($mimeType !== false) {
3838
return $mimeType;
3939
}
4040
}
@@ -55,7 +55,7 @@ public function getType($filename, $alternateName = null)
5555
* @param string $filename
5656
* @return string
5757
*/
58-
public function privFindType($filename)
58+
private function privFindType($filename)
5959
{
6060
// get base name of the filename provided by user
6161
$filename = basename($filename);
@@ -72,18 +72,19 @@ public function privFindType($filename)
7272
// return mime type for extension
7373
if (isset($mimeTypes[$filename])) {
7474
return $mimeTypes[$filename];
75-
// if the extension wasn't found return octet-stream
76-
} else {
77-
return 'application/octet-stream';
75+
7876
}
77+
78+
// If the extension was not found, return octet-stream.
79+
return 'application/octet-stream';
7980
}
8081

8182
/**
8283
* privBuildMimeArray.
8384
*
8485
* @return array
8586
*/
86-
public function privBuildMimeArray()
87+
private function privBuildMimeArray()
8788
{
8889
return array(
8990
'123' => 'application/vnd.lotus-1-2-3',

modules/thumbnailcreator/controllers/components/ImagemagickComponent.php

Lines changed: 0 additions & 173 deletions
Original file line numberDiff line numberDiff line change
@@ -20,179 +20,6 @@
2020

2121
include_once BASE_PATH.'/library/KWUtils.php';
2222

23-
if (extension_loaded('fileinfo') === false) {
24-
define('FILEINFO_NONE', 0);
25-
define('FILEINFO_SYMLINK', 2);
26-
define('FILEINFO_DEVICES', 8);
27-
define('FILEINFO_CONTINUE', 32);
28-
define('FILEINFO_PRESERVE_ATIME', 128);
29-
define('FILEINFO_RAW', 256);
30-
define('FILEINFO_MIME_TYPE', 16);
31-
define('FILEINFO_MIME_ENCODING', 1024);
32-
define('FILEINFO_MIME', 1040);
33-
34-
/**
35-
* Return information about a given string.
36-
*
37-
* @param null|int|resource $finfo fileinfo resource
38-
* @param null|string $string content of the file to be checked
39-
* @param int $options fileinfo constant (FILEINFO_NONE | FILEINFO_MIME_TYPE | FILEINFO_MIME_ENCODING | FILEINFO_MIME)
40-
* @param null|resource $context context (not implemented)
41-
* @return false|string a textual description of the given string or false on failure
42-
*/
43-
function finfo_buffer($finfo, $string = null, $options = FILEINFO_NONE, $context = null)
44-
{
45-
if ($finfo !== false && !is_null($string) && is_null($context)) {
46-
if ($options === FILEINFO_NONE && (($finfo & FILEINFO_MIME_TYPE) === FILEINFO_MIME_TYPE || ($finfo & FILEINFO_MIME_ENCODING) === FILEINFO_MIME_ENCODING)) {
47-
$options = $finfo;
48-
}
49-
50-
if (($options & FILEINFO_MIME_TYPE) === FILEINFO_MIME_TYPE || ($options & FILEINFO_MIME_ENCODING) === FILEINFO_MIME_ENCODING) {
51-
$mimeEncoding = 'binary';
52-
53-
if (substr($string, 0, 8) === "\x89PNG\x0d\x0a\x1a\x0a") {
54-
$mimeType = 'image/png';
55-
} elseif (substr($string, 0, 6) === 'GIF87a' || substr($string, 0, 6) === 'GIF89a') {
56-
$mimeType = 'image/gif';
57-
} elseif (substr($string, 0, 4) === "MM\x00\x2a" || substr($string, 0, 4) === "II\x2a\x00") {
58-
$mimeType = 'image/tiff';
59-
} elseif (substr($string, 0, 4) === '8BPS') {
60-
$mimeType = 'image/vnd.adobe.photoshop';
61-
} elseif (substr($string, 0, 3) === "\xFF\xD8\xFF") {
62-
$mimeType = 'image/jpeg';
63-
} elseif (substr($string, 0, 2) === 'BM') {
64-
$mimeType = 'image/bmp';
65-
} elseif (strpos($string, "\x00") !== false) {
66-
$mimeType = 'application/octet-stream';
67-
} else {
68-
$mimeEncoding = 'utf-8';
69-
$mimeType = 'text/plain';
70-
}
71-
72-
if (($options & FILEINFO_MIME) === FILEINFO_MIME) {
73-
return $mimeType.'; charset='.$mimeEncoding;
74-
}
75-
76-
if (($options & FILEINFO_MIME_TYPE) === FILEINFO_MIME_TYPE) {
77-
return $mimeType;
78-
}
79-
80-
return $mimeEncoding;
81-
}
82-
}
83-
84-
return false;
85-
}
86-
87-
/**
88-
* Close a given fileinfo resource.
89-
*
90-
* @param null|resource $finfo fileinfo resource
91-
* @return bool true on success or false on failure
92-
*/
93-
function finfo_close($finfo)
94-
{
95-
return $finfo !== false;
96-
}
97-
98-
/**
99-
* Return information about a given file.
100-
*
101-
* @param null|int|resource $finfo fileinfo resource
102-
* @param null|string $filename name of the file to be checked
103-
* @param int $options fileinfo constant (FILEINFO_NONE | FILEINFO_MIME_TYPE | FILEINFO_MIME_ENCODING | FILEINFO_MIME)
104-
* @param null|resource $context context (partially implemented)
105-
* @return false|string a textual description of the contents of the given file or false on failure
106-
*/
107-
function finfo_file($finfo, $filename = null, $options = FILEINFO_NONE, $context = null)
108-
{
109-
if ($finfo !== false && !is_null($filename)) {
110-
if ($options === FILEINFO_NONE && (($finfo & FILEINFO_MIME_TYPE) === FILEINFO_MIME_TYPE || ($finfo & FILEINFO_MIME_ENCODING) === FILEINFO_MIME_ENCODING)) {
111-
$options = $finfo;
112-
}
113-
114-
if (($options & FILEINFO_MIME_TYPE) === FILEINFO_MIME_TYPE || ($options & FILEINFO_MIME_ENCODING) === FILEINFO_MIME_ENCODING) {
115-
$mimeType = finfo_buffer($finfo, file_get_contents($filename, false, $context), $options, $context);
116-
117-
if ($mimeType === false || $mimeType === 'application/octet-stream') {
118-
$extension = strtolower(end(explode('.', basename($filename))));
119-
120-
switch ($extension) {
121-
case 'bmp':
122-
$mimeType = 'image/bmp';
123-
break;
124-
case 'gif':
125-
$mimeType = 'image/gif';
126-
break;
127-
case 'ico':
128-
$mimeType = 'image/x-icon';
129-
break;
130-
case 'jpe':
131-
case 'jpeg':
132-
case 'jpg':
133-
$mimeType = 'image/jpeg';
134-
break;
135-
case 'png':
136-
$mimeType = 'image/png';
137-
break;
138-
case 'psd':
139-
$mimeType = 'image/vnd.adobe.photoshop';
140-
break;
141-
case 'tif':
142-
case 'tiff':
143-
$mimeType = 'image/tiff';
144-
break;
145-
case 'text':
146-
case 'txt':
147-
$mimeType = 'text/plain';
148-
break;
149-
default:
150-
$mimeType = 'application/octet-stream';
151-
}
152-
}
153-
154-
$mimeEncoding = $mimeType === 'text/plain' ? 'utf-8' : 'binary';
155-
156-
if (($options & FILEINFO_MIME) === FILEINFO_MIME) {
157-
return $mimeType.'; charset='.$mimeEncoding;
158-
}
159-
160-
if (($options & FILEINFO_MIME_TYPE) === FILEINFO_MIME_TYPE) {
161-
return $mimeType;
162-
}
163-
164-
return $mimeEncoding;
165-
}
166-
}
167-
168-
return false;
169-
}
170-
171-
/**
172-
* Create a new fileinfo resource.
173-
*
174-
* @param int $options fileinfo constant (FILEINFO_NONE | FILEINFO_MIME_TYPE | FILEINFO_MIME_ENCODING | FILEINFO_MIME)
175-
* @param null|string $magic name of a magic database file (not implemented)
176-
* @return null|int|resource a fileinfo resource on success or false on failure.
177-
*/
178-
function finfo_open($options = FILEINFO_NONE, $magic = null)
179-
{
180-
return is_null($magic) ? $options : false;
181-
}
182-
183-
/**
184-
* Set the magic configuration options (not implemented).
185-
*
186-
* @param null|int|resource $finfo fileinfo resource
187-
* @param int $options fileinfo constant (FILEINFO_NONE | FILEINFO_MIME_TYPE | FILEINFO_MIME_ENCODING | FILEINFO_MIME)
188-
* @return bool true on success or false on failure
189-
*/
190-
function finfo_set_flags($finfo, $options)
191-
{
192-
return $finfo === $options;
193-
}
194-
}
195-
19623
/** Component used to create thumbnails using phMagick library (on top of ImageMagick) */
19724
class Thumbnailcreator_ImagemagickComponent extends AppComponent
19825
{

0 commit comments

Comments
 (0)