Hallo in die Runde,
ich betreue ein kleines Intranet Projekt (Datenbank Anwendung mit PHP Frontend). Auf einem PC hier im Büro läuft ein Apache (Lampp unter Linux). In der Anwendung gibt es die Möglichkeit CSV- oder Text-Dateien zum Datenimport auf den Server hochzuladen. Ich habe zur ersten Überprüfung des ausgewählten Dateityps das $_FILES Array in PHP verwendet (und zwar die Eigenschaft [‚type‘]).
Es gibt jetzt einen merkwürdigen Effekt: Textdateien (Endung txt) funktionieren immer problemlos. Der Mime Type für CSV wurde in der .htaccess gesetzt (AddType text/csv csv). Wenn man den Server startet und als erste Aktion den Upload macht, dann funktioniert das wie geplant. Wenn man erst andere Sachen macht (es laufen mehrere Datenbankanwendungen) dann steht in [‚type‘] application/eml und nicht text. Die Anwendung überprüft diese Variable auf ‚text‘ und lehnt daher die Datei als unzulässiges Format ab.
Ich frage mich, wo noch diese Typdefinitionen gesetzt werden (könnten). Ich habe die .htaccess Dateien (soweit vorhanden) überprüft, da steht nichts drin, was in diese Richtung weist. Ebenso die Datei mime.types, aber da steht auch nichts zu csv oder eml.
Ich könnte natürlich einfach eine Überprüfung des Dateinamens bzw. der Erweiterung machen, aber der Weg über ‚type‘ erschien mir eleganter. Auf dem Testsystem, wo die Anwendung entwickelt wird, tritt der Fehler nicht auf, da läuft allerdings ein xampp unter Win.
Danke im Voraus für alle Tipps.
Viele Grüße, Lo.