Supportnet / Forum / Skripte(PHP,ASP,Perl...)
header für eine hochzuladende Datei bestimmen
Frage
Hallo Leute,
ich habe folgendes Problem. In einer Datenbank sollen die Dateinamen der hochgeladenen Dateien gespeichert werden. Die Dateien selbst werden in ein separates Verzeichnis auf dem Server gespeichert. Nun möchte ich gern sämtliche (bzw. die wichtigsten) Dateiinformationen als header mit in der Datenbank speichern. Aber wie kann ich die header-Informationen herausbekommen? Es handelt sich hierbei auch um ständig um andere Dateitypen.
Ich hoffe, ihr seid schlauer als ich und könnt mir helfen.
Gruß Martina
Antwort 1 von Martina
Hab ganz vergessen euch mitzuteilen, dass ich gern eine Lösung mittels php hätte.
Antwort 2 von son_quatsch
Das sind wohl keine "header", die du meinst.
Dank dem Dateisystem kannst du für jede Datei ihre Größe ermitteln, genauso deren letztes Änderungsdatum.
Alles weitere muss für jeden Dateityp einzeln gemacht werden, da es keinen kleinsten gemeinsamen Nenner für alle Dateitypen gibt:
Dank dem Dateisystem kannst du für jede Datei ihre Größe ermitteln, genauso deren letztes Änderungsdatum.
Alles weitere muss für jeden Dateityp einzeln gemacht werden, da es keinen kleinsten gemeinsamen Nenner für alle Dateitypen gibt:
- Für Bilder gibt es in PHP diesen Bereich: http://de.php.net/manual/de/book.image.php, also z.B. die Dimensionen eines Bildes zu bestimmen ist einfach.
- Für Audiodateien (aber auch einige andere) gibt es http://getid3.sourceforge.net/
- Und für alles andere müsste man sich jeweils spezielle Lösungen suchen - oder gar selbst die Datenformate des Dateityps studieren und entsprechend gewünschte Infos selbst ermitteln
Antwort 3 von Martina
Na gut ...
und wie bestimme ich dann z.B. die Größe der Datei und deren letztes Änderungsdatum?
Als Dateitypen kommen in Frage:
pdf, doc, xls, tif, jpg, gif, png, cdr, cpt, be, raw, stl, fld, vgi, scn, bin, txt ...
und wie bestimme ich dann z.B. die Größe der Datei und deren letztes Änderungsdatum?
Als Dateitypen kommen in Frage:
pdf, doc, xls, tif, jpg, gif, png, cdr, cpt, be, raw, stl, fld, vgi, scn, bin, txt ...
Antwort 4 von son_quatsch
Dateigröße:
Letztes Änderungsdatum:
Siehe http://de3.php.net/manual/de/function.filemtime.php
und http://de3.php.net/manual/de/function.date.php
echo filesize('/root/pfad/datei.bmp');Siehe http://de3.php.net/manual/de/function.filesize.phpLetztes Änderungsdatum:
echo date('Y-m-d h:i:s', filemtime('/root/pfad/datei.bmp'));Siehe http://de3.php.net/manual/de/function.filemtime.php
und http://de3.php.net/manual/de/function.date.php
Antwort 5 von Martina
Aber dann kann ich doch erst die Dateigrüße und den Typ auslesen, wenn die Datei schon gespeichert ist.
Geht es nicht auch mit $_FILES['load_file_db']['size'] und $_FILES['load_file_db']['type'] während des Hochladens?
Geht es nicht auch mit $_FILES['load_file_db']['size'] und $_FILES['load_file_db']['type'] während des Hochladens?
Antwort 6 von son_quatsch
Ehrlich gesagt nein. In dem Moment, in dem du auf $_FILES zugreifst sind die Dateien bereits vollständig hochgeladen worden (wenn es keinen Fehler gab).
$_FILES['load_file_db']['size'] ist in der Tat dasselbe: die Größe der Datei. Der Unterschied ist aber, dass diese Datei momentan nur temporär existiert.
$_FILES['load_file_db']['type'] ist kaum hilfreich und vom Client fälschbar.
Mehr Infos und viele Kommentare findest du unter http://de2.php.net/manual/de/features.file-upload.php
$_FILES['load_file_db']['size'] ist in der Tat dasselbe: die Größe der Datei. Der Unterschied ist aber, dass diese Datei momentan nur temporär existiert.
$_FILES['load_file_db']['type'] ist kaum hilfreich und vom Client fälschbar.
Mehr Infos und viele Kommentare findest du unter http://de2.php.net/manual/de/features.file-upload.php
Antwort 7 von Jaja
hi,
ich hätt dir das "externe" programm exiftool anzubieten, welches du auf deinem server installieren müsstest und per php dann mit aufrufen.
damit kannst du die metainformationen aller video- und bilddaten auslesen...
für die anderen datentypen, die dokumente sind könnten dir andere externe tools weiterhelfen - zu pdf fällt mir spontan das pdftk ein, für den rest (weil ms formate) müsst ich noch suchen, gibts aber sicher..
möglicherweise reicht es da per dd die interessanden bytefolgen herauszukopieren und auszugeben ;) vielleicht kann auch antiword und xlhtml weiterhelfen die metainfos auszugeben.
bei txt wirds wohl nicht mehr als die dateigröße und änderungsdatum, das ist klar..
ich hätt dir das "externe" programm exiftool anzubieten, welches du auf deinem server installieren müsstest und per php dann mit aufrufen.
damit kannst du die metainformationen aller video- und bilddaten auslesen...
für die anderen datentypen, die dokumente sind könnten dir andere externe tools weiterhelfen - zu pdf fällt mir spontan das pdftk ein, für den rest (weil ms formate) müsst ich noch suchen, gibts aber sicher..
möglicherweise reicht es da per dd die interessanden bytefolgen herauszukopieren und auszugeben ;) vielleicht kann auch antiword und xlhtml weiterhelfen die metainfos auszugeben.
bei txt wirds wohl nicht mehr als die dateigröße und änderungsdatum, das ist klar..

