File::uniqueFilename() 

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

Creates a unique file name for the file if there is already a file with an identical name already exists in the target directory already exists in the target directory.

$name = \nn\t3::File()->uniqueFilename('fileadmin/01.jpg'); // 'fileadmin/01-1.jpg'
Copied!

| @return string

Source Code 

public function uniqueFilename($filename = '')
{
	$filename = $this->cleanFilename($filename);
	if (!$this->exists($filename)) return $filename;
	$path = pathinfo($filename, PATHINFO_DIRNAME) . '/';
	$suffix = pathinfo($filename, PATHINFO_EXTENSION);
	$filename = preg_replace('/-[0-9][0-9]$/', '', pathinfo($filename, PATHINFO_FILENAME));
	$i = 0;
	while ($i < 99) {
		$i++;
		$newName = $path . $filename . '-' . sprintf('%02d', $i) . '.' . $suffix;
		if (!$this->exists($newName)) return $newName;
	}
	return $path . $filename . '-' . uniqid() . '.' . $suffix;
}
Copied!