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'
|
||||
);
|
||||
|
||||
$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
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