Hallo!
Aufgabe ist hier herauszufinden ob ein Dateiname bereits vorhanden ist und wenn er das ist, dann soll der schon bestehende Dateiname verändert werden und die neue Datei unter dem veränderten Namen gespeichert werden. Die Methode soll so lange aufgerufen werden und der Dateiname verändert werden, bis ein Dateiname entstanden ist unter dem garantiert noch keine Datei gespeichert wurde.
Mein Problem ist dabei das ich am Punkt "testausgabe: " absolut keinen Return-Wert bekomme. In der Zeile return "testausgabe: " . $ouput also wird nichts zurückgegeben, was mich glauben lässt das return nicht aufgerufen wird. Wie man erkennen kann habe ich auch bereits versucht die Rückgabe an anderer Stelle einzubauen, also ganz am Ende der Methode. Aber auch das hat nicht funktioniert. Was mich dabei total verwirrt ist die Tatsache das wenn ich einen Dateinamen wähle der nocht nicht vorhanden ist, return $output normal funktioniert und der noch nicht vorhandene Dateiname ausgegeben wird. .. also im else-Teil, beim if-Teil gehts nicht :-( ). Ich bin mir aber absolut sicher das der if-Teil abgearbeitet wird, da die echo-anweisung direkt vor return "testausgabe: " . $output; zum richtigen Zeitpunkt ausgegeben wird.
Kann mir dabei bitte jemand helfen?
Aufgabe ist hier herauszufinden ob ein Dateiname bereits vorhanden ist und wenn er das ist, dann soll der schon bestehende Dateiname verändert werden und die neue Datei unter dem veränderten Namen gespeichert werden. Die Methode soll so lange aufgerufen werden und der Dateiname verändert werden, bis ein Dateiname entstanden ist unter dem garantiert noch keine Datei gespeichert wurde.
Mein Problem ist dabei das ich am Punkt "testausgabe: " absolut keinen Return-Wert bekomme. In der Zeile return "testausgabe: " . $ouput also wird nichts zurückgegeben, was mich glauben lässt das return nicht aufgerufen wird. Wie man erkennen kann habe ich auch bereits versucht die Rückgabe an anderer Stelle einzubauen, also ganz am Ende der Methode. Aber auch das hat nicht funktioniert. Was mich dabei total verwirrt ist die Tatsache das wenn ich einen Dateinamen wähle der nocht nicht vorhanden ist, return $output normal funktioniert und der noch nicht vorhandene Dateiname ausgegeben wird. .. also im else-Teil, beim if-Teil gehts nicht :-( ). Ich bin mir aber absolut sicher das der if-Teil abgearbeitet wird, da die echo-anweisung direkt vor return "testausgabe: " . $output; zum richtigen Zeitpunkt ausgegeben wird.
Kann mir dabei bitte jemand helfen?
PHP-Code:
class file_check {
var $index = 0;
function file_c( $filename ) {
if( file_exists( $filename ) ){
$this->index++;
$chunks = explode(".", $filename );
$chunksnum = count( $chunks ) - 1;
if( substr_count( $filename, "_") ){
$filenr = "_" . substr( $chunks[ $chunksnum - 1 ], strrpos( $chunks[ $chunksnum - 1 ], "_") + 1 ); $filenr++;
$prefile = "." . substr( $chunks[ $chunksnum - 1 ], 0, strrpos( $chunks[ $chunksnum - 1 ], "_"));
$postfile = "." . $chunks[ $chunksnum ];
$this->file_c( $prefile.$filenr.$postfile );
} else {
$filenr = "_" . $this->index;
$postfile = "." . $chunks[ $chunksnum ];
unset( $chunks[ $chunksnum ] );
$prefile = "." . implode( $chunks );
$this->file_c( $prefile.$filenr.$postfile );
}
} else {
if( $this->index > 0 ){
echo "<br />testausgabe: " . $filename;
$output = $filename;
return "output: " . $output;
} else {
$output = $filename;
return $output;
}
}
//echo $output;
// return "output: " . $output;
}
}
$test = new file_check;
$valid_file = $test->file_c( $_SESSION['uploaddir'] . $_FILES['newPic']['name'] );
echo "<br /><br />valid_file: " . $valid_file;
Kommentar