Dateiupload und überschreiben verhindern
lvl
- php
Hallo an alle :)
Ich habe hier mal ein bissel im Forum gestöbert, aber leider keine hilfreichen Tipps gefunden.
Mein Problem ist ganz einfach erklärt. Ich versuche in meinem PHP Skript eine Datei hoch zu laden. Das klappt auch so weit mit "move_uploaded_file()". Nun kann es sein, dass ich 2 verschiedene Dateien mit ein und dem selben Namen habe. Somit wird die Datei die auf dem Server schon liegt, überschrieben. Das soll so aber nicht sein. Wie kann ich nun herrausfinden ob der Dateiname schon vorhanden ist und wie kann ich die neue Datei so umbenennen das ich damit keine probleme habe?
Hi,
Nun kann es sein, dass ich 2 verschiedene Dateien mit ein und dem selben Namen habe.
nicht, wenn Du die Namen vorgibst.
Wie kann ich nun herrausfinden ob der Dateiname schon vorhanden ist
Du möchtest insbesondere prüfen, ob die _Datei_ schon vorhanden ist. PHP liefert diverse Möglichkeiten, auf Dateien zuzugreifen.
und wie kann ich die neue Datei so umbenennen das ich damit keine probleme habe?
Wie ich schon sagte: Gib die Namen vor.
Cheatah
Hallo ivi,
du kannst prüfen ob das file schon existiert:
if (file_exists($filename))
{
//timestamp erstellen
$zeit=time();
// timestamp vor den filenamen schreiben
$filename= $zeit."_".$HTTP_POST_FILES['PIC']['name'][$i];
// alle Buchstaben klein schreiben
$filename = strtolower($filename);
// umlaute filtern macht auch sinn
$umlaute = array ("/ä/", "/ö/", "/ü/", "/ß/","/[^a-zA-Z0-9.]/","/_+/", "/_$/");
$umlauteneu = array ("ae", "oe", "ue", "ss", "_", "_", "");
$filename = preg_replace ($umlaute, $umlauteneu, $filename);}
Konnte ich etwas helfen? Kritik ist erwünscht! Bin nicht perfekt.
Guma