Wenn der Dateiname existiert, wird ein neuer Dateiname mit angehängter Nummer zurückgegeben, damit Sie ihn nicht überschreiben.
function file_newname($path, $filename){
if ($pos = strrpos($filename, '.')) {
$name = substr($filename, 0, $pos);
$ext = substr($filename, $pos);
} else {
$name = $filename;
}
$newpath = $path.'/'.$filename;
$newname = $filename;
$counter = 0;
while (file_exists($newpath)) {
$newname = $name .'_'. $counter . $ext;
$newpath = $path.'/'.$newname;
$counter++;
}
return $newname;
}
Beispiel-Rückgabe
myfile.jpg
myfile_0.jpg
myfile_1.jpg
Merkwürdigerweise funktioniert dieser hier auf meiner Seite nicht.
Mein Ziel ist es, Benutzern den Upload von jeweils nur 10 Bildern zu gestatten (von 1 bis 10) … picture_1-10.jpg.
Wenn sich ein Benutzer entscheidet, ein Bild zu löschen, zum Beispiel picture_7.jpg, und ein neues hochlädt, sollte das Bild denselben Titel wie das gelöschte Bild erhalten.
Irgendwelche Vorschläge? Vielen Dank im Voraus.
Hier ist mein PHP-Skript
Wenn der Dateiname keine Erweiterung hat, beschwert sich PHP, dass die $$ext-Variable nicht gesetzt ist.
Sie sollten diesen Code ändern
} else { $name = $filename; }durch diese
} else { $name = $filename; $ext = ""; }Wie kann ich meine Datei von einem bereits hochgeladenen Pfad herunterladen? Welche Funktion kann ich verwenden? Bitte helfen Sie mir.
Danke für das Teilen. Nützlich für mich.
Vielen Dank für das Teilen der Logik, sie ist sehr nützlich……
Dies funktioniert nicht gut, wenn Sie eine bereits umbenannte Datei hochladen.
Zum Beispiel: Wenn Sie „myfile_1.jpg“ hochladen, wird es in „myfile_1_1.jpg“ umbenannt.
Sie müssen nach „_ZAHL“ in der Datei suchen und diese Zahl erhöhen.