_FILES['datei']['type'] kann nicht alles

klanawagna

Erfahrenes Mitglied
Hallo! Ich habe das Problem das mein $_FILES['datei']['type'] nicht alle Typen kennt. Vorallem wichtige, wie application/zip! Wenn ich ihm also eine Zip-Datei übergebe bekommt er auch keinen tmpname.
Liegt das an meinem Server? Oder an meiner PHP version?

lg
klanawagna
 
Hallo,

soeit ich weiß, wird das Feld "type" vom Browser gesendet, da hat PHP keinen Einfluss darauf.

Eintrag bei php.net: Klick und Klick

Gruß
BK

// Edit: Besser wäre hier eine Überprüfung an Hand der Magic Bytes (bei zip sind das 50h 4Bh 03h 04h).
 
Zuletzt bearbeitet:
Tja, das würde funktionieren wenn die Datei bis zum Server kommen würde ;)
Folgendes Script würde funktionieren, wenn ich einen Tempname bekommen würde. Den bekomme ich allerdings nur bei .odt - Dateien z.B., also Dateitypen wo ich den Mimetyp schon immer übertragen konnte.

PHP:
$tmpname = $_FILES['datei']['tmp_name'];
echo "Tempname: ".$tmpname;
$hndFile = fopen($tmpname, "r");
$fhandle = finfo_open(FILEINFO_MIME);
	$type = finfo_file($fhandle,$file);
	//$type = $_FILES['datei']['type'];	
	$data = addslashes(fread($hndFile, filesize($tmpname)));
	$name = $_POST['name'];

Gibt es eine Möglichkeit mit JS die richtigen Dateien zu übertragen?

lg!
 
Hmm, bist du sicher, dass es am type liegt...lasse dir mal $_FILES['datei']['error'] ausgeben, was liefert das?

Warum ich frage: bei unbekanntem Dateityp sollte der Browser zumindest ein application/octet-stream als Typ senden.
Ich würde daher eher vermuten, dass ein anderer Fehler beim Upload aufgetreten ist, weshalb type und tmp_name leer sind.
 
Zurück