File::cleanFilename() 

\nn\t3::File()->cleanFilename($filename = ''); 

Cleans a file name

$clean = \nn\t3::File()->cleanFilename('fileadmin/noe_so_not.jpg'); // 'fileadmin/noe_so_not.jpg'
Copied!

| @return string

Source Code 

public function cleanFilename($filename = '')
{
	$path = pathinfo($filename, PATHINFO_DIRNAME) . '/';
	$suffix = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
	$filename = pathinfo($filename, PATHINFO_FILENAME);
	$filename = GeneralUtility::makeInstance(CharsetConverter::class)->utf8_char_mapping($filename);
	$cleanFilename = utf8_decode($filename);
	$cleanFilename = strtolower(preg_replace('/[' . self::UNSAFE_FILENAME_CHARACTER_EXPRESSION . '\\xC0-\\xFF]/', '_', trim($cleanFilename)));
	$cleanFilename = str_replace(['@'], '_', $cleanFilename);
	if ($secondSuffix = pathinfo($cleanFilename, PATHINFO_EXTENSION)) {
		$cleanFilename = substr($cleanFilename, 0, -strlen($secondSuffix));
		$suffix = "{$secondSuffix}.{$suffix}";
	}
	$cleanFilename = preg_replace('/_+/', '_', $cleanFilename);
	$cleanFilename = substr($cleanFilename, 0, 64 - strlen($suffix) - 1);
	return $path . rtrim($cleanFilename, '.') . ".{$suffix}";
}
Copied!