forked from GNUsocial/gnu-social
[CORE] Fixed Media tests
This commit is contained in:
parent
7070a14480
commit
4863bd30d7
@ -498,7 +498,7 @@ class MediaFile
|
|||||||
|
|
||||||
// From CodeIgniter
|
// From CodeIgniter
|
||||||
// We'll need this to validate the MIME info string (e.g. text/plain; charset=us-ascii)
|
// We'll need this to validate the MIME info string (e.g. text/plain; charset=us-ascii)
|
||||||
$regexp = '/^([a-z\-]+\/[a-z0-9\-\.\+]+)(;\s.+)?$/';
|
$regexp = '/^([a-z\-]+\/[a-z0-9\-\.\+]+)(;\s[^\/]+)?$/';
|
||||||
/**
|
/**
|
||||||
* Fileinfo extension - most reliable method
|
* Fileinfo extension - most reliable method
|
||||||
*
|
*
|
||||||
@ -536,7 +536,7 @@ class MediaFile
|
|||||||
*/
|
*/
|
||||||
if (DIRECTORY_SEPARATOR !== '\\') {
|
if (DIRECTORY_SEPARATOR !== '\\') {
|
||||||
$cmd = 'file --brief --mime '.escapeshellarg($filepath).' 2>&1';
|
$cmd = 'file --brief --mime '.escapeshellarg($filepath).' 2>&1';
|
||||||
if (function_exists('exec')) {
|
if (empty($mimetype) && function_exists('exec')) {
|
||||||
/* This might look confusing, as $mime is being populated with all of the output
|
/* This might look confusing, as $mime is being populated with all of the output
|
||||||
* when set in the second parameter. However, we only need the last line, which is
|
* when set in the second parameter. However, we only need the last line, which is
|
||||||
* the actual return value of exec(), and as such - it overwrites anything that could
|
* the actual return value of exec(), and as such - it overwrites anything that could
|
||||||
@ -548,7 +548,7 @@ class MediaFile
|
|||||||
$mimetype = $matches[1];
|
$mimetype = $matches[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (function_exists('shell_exec')) {
|
if (empty($mimetype) && function_exists('shell_exec')) {
|
||||||
$mime = @shell_exec($cmd);
|
$mime = @shell_exec($cmd);
|
||||||
if (strlen($mime) > 0) {
|
if (strlen($mime) > 0) {
|
||||||
$mime = explode("\n", trim($mime));
|
$mime = explode("\n", trim($mime));
|
||||||
@ -557,7 +557,7 @@ class MediaFile
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (function_exists('popen')) {
|
if (empty($mimetype) && function_exists('popen')) {
|
||||||
$proc = @popen($cmd, 'r');
|
$proc = @popen($cmd, 'r');
|
||||||
if (is_resource($proc)) {
|
if (is_resource($proc)) {
|
||||||
$mime = @fread($proc, 512);
|
$mime = @fread($proc, 512);
|
||||||
@ -572,7 +572,7 @@ class MediaFile
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Fall back to mime_content_type(), if available (still better than $_FILES[$field]['type'])
|
// Fall back to mime_content_type(), if available (still better than $_FILES[$field]['type'])
|
||||||
if (function_exists('mime_content_type')) {
|
if (empty($mimetype) && function_exists('mime_content_type')) {
|
||||||
$mimetype = @mime_content_type($filepath);
|
$mimetype = @mime_content_type($filepath);
|
||||||
// It's possible that mime_content_type() returns FALSE or an empty string
|
// It's possible that mime_content_type() returns FALSE or an empty string
|
||||||
if ($mimetype == false && strlen($mimetype) > 0) {
|
if ($mimetype == false && strlen($mimetype) > 0) {
|
||||||
|
@ -65,21 +65,17 @@ class MediaFileTest extends PHPUnit_Framework_TestCase
|
|||||||
"image.gif" => "image/gif",
|
"image.gif" => "image/gif",
|
||||||
"image.jpg" => "image/jpeg",
|
"image.jpg" => "image/jpeg",
|
||||||
"image.jpeg" => "image/jpeg",
|
"image.jpeg" => "image/jpeg",
|
||||||
|
|
||||||
"office.pdf" => "application/pdf",
|
"office.pdf" => "application/pdf",
|
||||||
|
|
||||||
"wordproc.odt" => "application/vnd.oasis.opendocument.text",
|
"wordproc.odt" => "application/vnd.oasis.opendocument.text",
|
||||||
"wordproc.ott" => "application/vnd.oasis.opendocument.text-template",
|
"wordproc.ott" => "application/vnd.oasis.opendocument.text-template",
|
||||||
"wordproc.doc" => "application/msword",
|
"wordproc.doc" => "application/msword",
|
||||||
"wordproc.docx" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
"wordproc.docx" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
||||||
"wordproc.rtf" => "text/rtf",
|
"wordproc.rtf" => "text/rtf",
|
||||||
|
|
||||||
"spreadsheet.ods" => "application/vnd.oasis.opendocument.spreadsheet",
|
"spreadsheet.ods" => "application/vnd.oasis.opendocument.spreadsheet",
|
||||||
"spreadsheet.ots" => "application/vnd.oasis.opendocument.spreadsheet-template",
|
"spreadsheet.ots" => "application/vnd.oasis.opendocument.spreadsheet-template",
|
||||||
"spreadsheet.xls" => "application/vnd.ms-office", //"application/vnd.ms-excel",
|
"spreadsheet.xls" => "application/vnd.ms-excel",
|
||||||
"spreadsheet.xlt" => "application/vnd.ms-office", //"application/vnd.ms-excel",
|
"spreadsheet.xlt" => "application/vnd.ms-excel",
|
||||||
"spreadsheet.xlsx" => "application/octet-stream", //"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
"spreadsheet.xlsx" =>"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||||
|
|
||||||
"presentation.odp" => "application/vnd.oasis.opendocument.presentation",
|
"presentation.odp" => "application/vnd.oasis.opendocument.presentation",
|
||||||
"presentation.otp" => "application/vnd.oasis.opendocument.presentation-template",
|
"presentation.otp" => "application/vnd.oasis.opendocument.presentation-template",
|
||||||
"presentation.ppt" => "application/vnd.ms-powerpoint",
|
"presentation.ppt" => "application/vnd.ms-powerpoint",
|
||||||
|
Loading…
Reference in New Issue
Block a user