PHP - Neuer Dateiname falls eine hoch geladene Datei bereits existiert
Falls eine Datei mit dem Dateinamen bereits existiert, wird eine Zahl an den Dateinamen angehängt.
verzeichnis/dateiname.jpg verzeichnis/dateiname1.jpg verzeichnis/dateiname2.jpg verzeichnis/dateiname3.jpg …
<?php
// Neuer Dateiname falls eine hoch geladene Datei bereits existiert
//Pfad
$new_path = $upload_folder . $filename . '.' . $extension;
if (file_exists($new_path)) {
$nr = 1;
do {
// Falls Datei existiert, hänge eine Zahl an den Dateinamen
$new_path = $upload_folder . $filename.$nr . '.' . $extension;
$nr++;
}
while(file_exists($new_path));
}
?>
Den Namen einer hochgeladenen Datei filtern
<?php
// Den Namen einer hochgeladenen Datei filtern
// ...
$directory = "uploads/";
// Maximale Länge des Dateinamens
$filenamemax = 65;
// Name und Erweiterung der Datei ermitteln
$path = pathinfo($_FILES["datei"]["name"]);
$filename = $path["filename"];
$extension = strtolower($path["extension"]);
// Dateiname filtern
$filename = utf8_decode($filename); // utf-8 decodiert
$filename = trim($filename); // Whitespace
$filename = mb_strtolower($filename); // Kleinbuchstaben
// Hier entsprechende Zeichen und Ersatzzeichen (vom ASCII-Zeichensatz) einfügen
$filename = str_replace(["ä", "ö", "ü", "ß", " ", ], ["ae", "oe", "ue", "ss", "_", ], $filename);
// Angegebene Zeichen durchlassen, alle sonstigen filtern
$filename = preg_replace("/[^a-z0-9_-]/", "", $filename);
// Länge des Dateinamens eventuell kürzen
$newname = substr($filename, 0, $filenamemax) . "." . $extension;
// Wenn die Datei vorhanden ist, hänge eine Zahl an den Dateinamen
if (file_exists($directory . $newname)) {
$nr = 2;
do {
$newname = substr($filename, 0, $filenamemax) . $nr . "." . $extension;
$nr++;
}
while(file_exists($directory . $newname));
}
// ...
?>
Bausteine Alle Anzeigen
Eine zufällige Auswahl von Codeschnipseln
aus den Bereichen
HTML, CSS,
PHP, JavaScript und
MySQL.
<a> Verweis