Merge pull request #102 from kenrestivo/upload-fixes

Handle file names with more than one dot.
This commit is contained in:
redmatrix 2015-10-28 14:02:30 +11:00
commit 3bc8d4d0eb
2 changed files with 32 additions and 3 deletions

View File

@ -108,9 +108,9 @@ function z_mime_content_type($filename) {
'oth' => 'application/vnd.oasis.opendocument.text-web'
);
$dot = strpos($filename, '.');
if ($dot !== false) {
$ext = strtolower(substr($filename, $dot + 1));
$last_dot = strrpos($filename, '.');
if ($last_dot !== false) {
$ext = strtolower(substr($filename, $last_dot + 1));
if (array_key_exists($ext, $mime_types)) {
return $mime_types[$ext];
}

29
tests/upload_test.php Normal file
View 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));
}
}