In einer Controller-Aktion, ich mit der Datei-Upload wie folgt (kurz):rekursive Funktion in CakePHP
$originalFileName = $meetingsTask['submitted_file']['name'];
$file = $meetingsTask['submitted_file'];
$ext = substr(strtolower(strrchr($file['name'], '.')), 1);
$arr_ext = array('jpg', 'jpeg', 'png', 'gif', 'pdf', 'doc', 'docx', 'xlsx', 'xls', 'xlt', 'xlm', 'ods','ppt', 'pot', 'pps');
if(!in_array($ext, $arr_ext)){
...code omitted...
}
$newFileName = $this->generateFileName($originalFileName);
...logic continues...
Das Problem ist, dass generateFileName
Funktion immer leer zurückzugibt, wenn Dateiname bereits vorhanden ist. Hier ist die Funktion selbst:
public function generateFileName($fileName){
if($this->Tasks->checkFileName($fileName)){
$prefix = rand(1, 1000);
$fileName = $prefix . '_' . $fileName;
$this->generateFileName($fileName);
}else{
return $fileName;
}
}
checkFileName()
liefert nur wahr/falsch in Abhängigkeit von der Existenz von Dateinamen in der Datenbank.
Was könnte den Ärger verursachen?
Jede Hilfe oder Anleitung wird sehr geschätzt.
Vielen Dank für solch eine schnelle Antwort. Das löst das Problem und Sie haben sogar Kommentare eingefügt. – WpDoe
@WpDoe Froh, ich könnte helfen. Viel Glück! – splash58