Archiv verlassen und diese Seite im Standarddesign anzeigen : Große Dateien in MySQL Datenbank?
Hallo,
ich entwickel gerade ein kleines Auftragssystem, bei dem man über ein PHP-Skript ein Formular ausfüllt und eine Datei hochladen kann. Diese Dateien können locker mehrere 100MB groß sein. Denkt ihr ich kann die bedenkenlos in der Datenbank speichern oder ist es besser sie direkt im Filesystem zu speichern?
Speichere die Datei in ein Verzeichnis und den Pfad in die Datenbank
Berni
2008-10-13, 23:31:30
Niemals in die Datenbank. Datenbanken sind für sowas nicht gedacht. Es gibt zwar BLOBs aber effizient ist das nicht und bietet sich höchstens wür wenige MB an wenns gar nicht anders geht. Speichers wie der Gast sagte ins Dateisystem. Allerdings nicht mit dem Originaldateinamen. Erstelle dazu eine Tabelle für die hochgeladenen Dateien mit den Spalten ID, Dateiname, Extension (und was du sonst willst, evtl. Uploaddatum, irgendeine Relation usw.). Hochgeladene Dateien werden dann als "attachment-<ID>.<Extension>" abgespeichert. Das Verzeichnis sollte natürlich zugriffsgesichert sein und nur über ein php-Skript erreichbar sein. Dieses Skript überprüft die Berechtigung und kann auch dem Browser dann den Originaldateinamen vorgaukeln.
Niemals in die Datenbank. Datenbanken sind für sowas nicht gedacht. Es gibt zwar BLOBs aber effizient ist das nicht und bietet sich höchstens wür wenige MB an wenns gar nicht anders geht. Speichers wie der Gast sagte ins Dateisystem. Allerdings nicht mit dem Originaldateinamen.
Danke euch schonmal für die Antworten! Eine Frage noch, wieso sollte ich sie nicht unter dem Originalnamen speichern? Ich hätte jetzt für jeden Auftrag einen neuen Ordner mit einem Timestamp im Dateinamen erstellt. Der Zugriff auf die Dateien erfolgt anschließend nur von wenigen Leuten die den Auftrag bearbeiten.
Berni
2008-10-14, 00:29:56
Mit timestamp-Ordnern kannst dus auch machen wenngleich der Timestamp in extrem seltenen Fällen nicht eindeutig sein könnte (ist ja nur sekundengenau). Ich meinte nur damit zwei Dateien mit selbem Namen auch bestehen können.
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.