Merge pull request #102 from kenrestivo/upload-fixes
Handle file names with more than one dot.
This commit is contained in:
commit
3bc8d4d0eb
@ -108,9 +108,9 @@ function z_mime_content_type($filename) {
|
|||||||
'oth' => 'application/vnd.oasis.opendocument.text-web'
|
'oth' => 'application/vnd.oasis.opendocument.text-web'
|
||||||
);
|
);
|
||||||
|
|
||||||
$dot = strpos($filename, '.');
|
$last_dot = strrpos($filename, '.');
|
||||||
if ($dot !== false) {
|
if ($last_dot !== false) {
|
||||||
$ext = strtolower(substr($filename, $dot + 1));
|
$ext = strtolower(substr($filename, $last_dot + 1));
|
||||||
if (array_key_exists($ext, $mime_types)) {
|
if (array_key_exists($ext, $mime_types)) {
|
||||||
return $mime_types[$ext];
|
return $mime_types[$ext];
|
||||||
}
|
}
|
||||||
|
29
tests/upload_test.php
Normal file
29
tests/upload_test.php
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* this file contains tests for the uploader
|
||||||
|
*
|
||||||
|
* @package test.util
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** required, it is the file under test */
|
||||||
|
require_once('include/attach.php');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TestCase for the uploader
|
||||||
|
*
|
||||||
|
* @author ken restivo
|
||||||
|
* @package test.util
|
||||||
|
*/
|
||||||
|
class UploadTest extends PHPUnit_Framework_TestCase {
|
||||||
|
public function testFileNameMutipleDots() {
|
||||||
|
$multidots = "foo.bar.baz.0.1.3.ogg";
|
||||||
|
$this->assertEquals("audio/ogg", z_mime_content_type($multidots));
|
||||||
|
$this->assertNotEquals("application/octet-stream", z_mime_content_type($multidots));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testFileNameOneDot() {
|
||||||
|
$multidots = "foo.ogg";
|
||||||
|
$this->assertEquals("audio/ogg", z_mime_content_type($multidots));
|
||||||
|
$this->assertNotEquals("application/octet-stream", z_mime_content_type($multidots));
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user