Hallo,
ich benutze ein Script für erzwungene Downloads, damit man den Usern nicht für jeden Browser erklären muß, wie er die Datei auf die Festplatte bekommt, statt daß die online geöffnet wird. Das klappt ja auch gut, aber mit der Erkennung/Darstellung des Dateiformats bin ich nicht 100% zufrieden. Lassen wir mal eine Verzeichnisstruktur weg und gehen davon aus, daß der Name der angebotenen Datei in $datei gespeichert ist, dann habe ich
Davor habe ich als erste header-Zeile unterschiedliche Sachen ausprobiert, zu denen auf verschiedenen Internetseiten geraten wurde:
Das erste bewirkt, daß beim FireFox für jede Datei als Typ "Adobe Acrobat Document" angezeigt wird. Schön im Klartext und mit zugehörigem Logo als Icon, aber das war natürlich Mist.
Die anderen Varianten oder das Weglassen dieser zusätzlichen Zeile bringen zwar keine falschen Ergebnisse und sind einigermaßen erträglich, aber erstens zeigt der FireFox als Icon nicht das Symbol der zugehörigen Anwendung und zweitens bekommen nur manche Formate eine Klartext-Bezeichnung, ansonsten steht da "xxx-Datei" (wobei xxx hier für die Dateikennung steht).
Gibt es denn eine Möglichkeit, wie man per Script für jedes Dateiformat den passenden Content-Type-Eintrag generieren lassen kann oder einen universellen Eintrag für Content-Type, der die Browsermöglichkeiten (inkl. Anwendungssymbol) vollständig nutzt?
Danke!
ich benutze ein Script für erzwungene Downloads, damit man den Usern nicht für jeden Browser erklären muß, wie er die Datei auf die Festplatte bekommt, statt daß die online geöffnet wird. Das klappt ja auch gut, aber mit der Erkennung/Darstellung des Dateiformats bin ich nicht 100% zufrieden. Lassen wir mal eine Verzeichnisstruktur weg und gehen davon aus, daß der Name der angebotenen Datei in $datei gespeichert ist, dann habe ich
PHP-Code:
header("Content-Length: ".filesize($datei));
header("Content-Disposition: attachment; filename=".$datei);
readfile($datei);
PHP-Code:
header("Content-Type: x-type/subtype");
header("Content-Type: x-type/x-subtype");
header("Content-Type: application/octet-stream");
header("Content-Type: application/".substr(strrchr($datei, "."),1));
Die anderen Varianten oder das Weglassen dieser zusätzlichen Zeile bringen zwar keine falschen Ergebnisse und sind einigermaßen erträglich, aber erstens zeigt der FireFox als Icon nicht das Symbol der zugehörigen Anwendung und zweitens bekommen nur manche Formate eine Klartext-Bezeichnung, ansonsten steht da "xxx-Datei" (wobei xxx hier für die Dateikennung steht).
Gibt es denn eine Möglichkeit, wie man per Script für jedes Dateiformat den passenden Content-Type-Eintrag generieren lassen kann oder einen universellen Eintrag für Content-Type, der die Browsermöglichkeiten (inkl. Anwendungssymbol) vollständig nutzt?
Danke!
Kommentar