In vielen Situationen müssen wir den Dateinamen beim Erstellen auf dem Server anders angeben, um eine Duplizierung zu vermeiden. Und die häufigste Antwort darauf scheint zu sein, den Zeitstempel am Ende anzufügen oder den Dateinamen in der Datenbank zu speichern und diese gespeicherten Werte zu verwenden, um einen neuen Namen zu berechnen. Diese sind gut und alle, aber das Anhängen eines langen Zeitstempels ist nicht immer sehr benutzerfreundlich, und das Speichern in der db ist nicht immer eine Option. Also, wie können wir einen Standard-Dateinamen automatisch erhöhen, während wir ihn über PHP erstellen?So erhöhen Sie Dateinamen in PHP, um Duplikate zu verhindern
6
A
Antwort
8
Hier ist eine einfache Funktion, die ich für diesen Zweck geschrieben:
function incrementFileName($file_path,$filename){
if(count(glob($file_path.$filename))>0)
{
$file_ext = end(explode(".", $filename));
$file_name = str_replace(('.'.$file_ext),"",$filename);
$newfilename = $file_name.'_'.count(glob($file_path."$file_name*.$file_ext")).'.'.$file_ext;
return $newfilename;
}
else
{
return $filename;
}
}
ANWENDUNG:
$newName = incrementFileName("uploads/", $_FILES["my_file"]["name"]);
move_uploaded_file($_FILES["my_file"]["tmp_name"],"uploads/".$newName);
1
function incrementFileName($file_path,$filename){
$array = explode(".", $filename);
$file_ext = end($array);
$root_name = str_replace(('.'.$file_ext),"",$filename);
$file = $file_path.$filename;
$i = 1;
while(file_exists($file)){
$file = $file_path.$root_name.$i.'.'.$file_ext;
$i++;
}
return $file;
}
6
All diese Antworten scheinen viel des Guten:
$k = 0;
while(!$result){
if(!file_exists("file[$k].ext"))
$result = "file[$k].ext";
$k++;
}
makefile($result);
Verwandte Themen
- 1. PHP Duplikate zu verhindern, wenn ein Array Aufbau
- 2. So verhindern Sie Duplikate mit innerer Join-Abfrage (Postgres)
- 3. So entfernen Sie Duplikate von JSON in PHP
- 4. PHP: So verhindern Sie unerwünschte Zeilenumbrüche
- 5. So vermeiden Sie Duplikate in arangoDB
- 6. So entfernen Sie Duplikate in einer Arraylist
- 7. SQL-Abfrage, um Duplikate zu finden
- 8. So verhindern Sie doppelte SQS-Nachrichten?
- 9. So erhöhen Sie alle Preise, die Werte um 10% diktieren
- 10. So erhöhen Sie das Timeout in CasperJS
- 11. PHP Upload-Datei erhöhen Sicherheit
- 12. So erhöhen Sie einen Zähler in SQLAlchemy
- 13. PHP-Funktionen, um klassische Software-Versionsnummern zu erhöhen?
- 14. So legen Sie den Dateinamen in Antwort
- 15. So optimieren Sie diese Javascript-Duplikate
- 16. PHP Regex, um Telefonnummern aus Dateinamen zu extrahieren
- 17. So erhöhen Sie die maximale Audio-Ausgangsleistung
- 18. Rechte erhöhen, um mach_inject zu verwenden
- 19. Verwenden Sie ActionLink, um den Wert der Eigenschaft zu erhöhen
- 20. So entfernen Sie Duplikate aus int [] []
- 21. matplotlib - Auflösung erhöhen, um Details zu sehen
- 22. So verhindern Sie Spam-Suchen
- 23. So verhindern Sie ProcessMessages in Delphi
- 24. So erhöhen Sie den Zugriffsmodifikator einer Eigenschaft
- 25. So verhindern Sie eine doppelte Zustellung in HornetQ
- 26. PHP Datum erhöhen
- 27. Wie kann ich mehrere Spalten einschränken, um Duplikate zu verhindern, aber Nullwerte ignorieren?
- 28. Run PHP in anderen Dateinamen
- 29. Überbrücken Sie mehrere BlackBerry-Verbindungen, um die Bandbreite zu erhöhen.
- 30. Regex, um nur einige Dateinamen zu entsprechen