Working : upload file/image : fix sanitizeFileName

This commit is contained in:
gmorel
2013-09-27 10:21:49 +02:00
parent 116c8c31b4
commit c8e56625ad
2 changed files with 5 additions and 10 deletions

View File

@@ -532,9 +532,9 @@ class FileManagerTest extends \PHPUnit_Framework_TestCase {
->getMock(); ->getMock();
$fileManager = new FileManager($stubContainer); $fileManager = new FileManager($stubContainer);
$badFileName = 'azeéràçè§^"$*+-_°)(&é<>@#ty'; $badFileName = 'a/ze\érà~çè§^"$*+-_°)(&é<>@#ty2/[\/:*?"<>|]/fi?.fUPPERile.exel../e*';
$expected = 'azeyryZyy-_yty'; $expected = 'azer-_ty2fi.fupperile.exel..e';
$actual = $fileManager->sanitizeFileName($badFileName); $actual = $fileManager->sanitizeFileName($badFileName);
$this->assertEquals($expected, $actual); $this->assertEquals($expected, $actual);
@@ -802,7 +802,7 @@ class FileManagerTest extends \PHPUnit_Framework_TestCase {
$fileManager = new FileManager($stubContainer); $fileManager = new FileManager($stubContainer);
$expected = 'or1-g_nalyfilenme-1.yml'; $expected = 'or1-g_nalfilenme-1.yml';
$actual = $fileManager->renameFile(1, $stubUploadedFile); $actual = $fileManager->renameFile(1, $stubUploadedFile);
$this->assertEquals($expected, $actual); $this->assertEquals($expected, $actual);
@@ -830,7 +830,7 @@ class FileManagerTest extends \PHPUnit_Framework_TestCase {
$fileManager = new FileManager($stubContainer); $fileManager = new FileManager($stubContainer);
$expected = 'or1-g_nalyfilenme-1'; $expected = 'or1-g_nalfilenme-1';
$actual = $fileManager->renameFile(1, $stubUploadedFile); $actual = $fileManager->renameFile(1, $stubUploadedFile);
$this->assertEquals($expected, $actual); $this->assertEquals($expected, $actual);

View File

@@ -279,12 +279,7 @@ class FileManager
*/ */
public function sanitizeFileName($string) public function sanitizeFileName($string)
{ {
$cleanName = strtr($string, 'ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöøùúûüýÿ', 'SZszYAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy'); return strtolower(preg_replace('/[^a-zA-Z0-9-_\.]/', '', $string));
$cleanName = strtr($cleanName, array('Þ' => 'TH', 'þ' => 'th', 'Ð' => 'DH', 'ð' => 'dh', 'ß' => 'ss', 'Œ' => 'OE', 'œ' => 'oe', 'Æ' => 'AE', 'æ' => 'ae', 'µ' => 'u'));
$cleanName = preg_replace(array('/\s/', '/\.[\.]+/', '/[^\w_\.\-]/'), array('_', '.', ''), $cleanName);
return $cleanName;
} }
/** /**