Datei ohne Endung speichern sinnvoll?

  • Ersteller Ersteller Janniboy
  • Erstellt am Erstellt am
J

Janniboy

Gast
Hallo liebe Community,

ich programmiere gerade einen kleinen Uploader, womit man Dateien per PHP hochladen kann. In einer Datenbank speichere ich den Dateinamen ab, z. B. "Mein Adressbuch.xlsx" und auf dem Server liegt die dazugehörige Datei.
Das Problem ist jetzt, wenn ein anderer eine Datei mit dem selben Namen hoch lädt, würde PHP die momentan überschreiben. Da aber kein Benutzer deshalb seine Datei umbenennen soll, dachte ich mir, speichere ich die Dateien mit dem Primärschlüssel der Datenbank ab, um so Doppelungen zu vermeiden. Das heißt, die Dateien sehen dann z. B. so aus: "Datei_1.xlsx", "Datei_2.xlsx" usw.

Das läuft alles prima so. Meine Frage ist folgende: Kann ich die Dateien auch ohne Endung abspeichern oder geht die dadurch kaputt? (also einfach nur Datei_1, Datei_2 usw.
Ich würde dann beim Download einfach als Dateinamen den aus der Datenbank inkl. der Endung nehmen und der Benutzer merkt davon nichts. So würde ich mir etwas Code und Zeit sparen. Macht das Sinn oder geht die Datei dann nachher nicht mehr?

Wenn ich in Windows eine Datei ohne Endung speichere und dann wieder eine Endung gebe, geht die immer noch.

Freue mich auf Antworten und danke im Voraus!
lg Janniboy
 
Ich musste grad kurz lachen. :D Die Datei geht nicht kaputt wenn du sie ohne Endung speicherst. Da brauchst du dir keine Sorgen machen. Der Dateiname hat absolut nichts mit dem Inhalt zu tun. Die Endung hinter dem Punkt wird lediglich von einigen Betriebssystemen dazu verwendet, die Datei geeigneten Anwendungen zuzuordnen.
 
Hallo,

nein die Datei wird im Normalfall nicht beschädigt, solange am Ende wieder die richtige Endung dran kommt.
 
Nur weil man die Endung weglässt, geht die Datei nicht kaputt. Die Frage ist, wie ein IIS oder Apache solche typenlosen Dateien behandelt.

Ich würde die Endungen behalten, damit man auch ohne Datenbank weiß, was für Dateien das sind.
 
Das ist an sich kein Problem. Die Datei Endung dient eigentlich nur dazu, das zB der Explorer weiß, mit welchem Programm er es öffnen soll.

Du könntest aber sonst auch mit benutzerspeziefschen Ordnern arbeiten, dann könntest du die Daten im Falle das die Datenbank ausfällt oÄ noch rekonstruieren.
 
Obwohl man dazu sagen muss, dass es gewisse Situationen gibt wo das Sys schreibt "Diese Datei könnte dadurch beschädigt oder unbrauchbar werden" !
 
Hey,

das ging ja flott.
Ich danke euch für die schnellen und hilfreichen Antworten.

Ich würde die Endungen behalten, damit man auch ohne Datenbank weiß, was für Dateien das sind.
Das ist eigentlich ein gutes Argument. Im Falle eines Falles, hätte ich dann immer noch Zugriff auf die Dateien. Da hatte ich so gar nicht dran gedacht. Vielleicht sollte ich die Datei dann doch mit Endung speichern und mir die Mühe eben machen :D

Danke euch!
lG
 
Alternativplan: Speicher die Dateien als BLOBs direkt in der Datenbank.
Sowas erleichtert die Zugriffskontrolle ungemein und verhindert Dopplungen garantiert. Oh, und wenn du mal einen User entsorgst, entsorgst du per referentieller Integrität auch gleich seine "Dateien" mit.

Hat nur kleine Nachteile bei inkrementellen Backups.
 
Zurück
Oben