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!
und kann nichts dafür, daß sich irgendein Browser so oder so verhält.
noch über den Sinn oder Unsinn dessen, wie sich ein Browser in bestimmten Situationen benimmt (wofür ich noch immer nicht verantwortlich bin
) - irgendwie muß der Webspace dieses Forums ja genutzt werden:
, ein nervtötendes Gegakel im Browser geboten bekommt. Der hat im Moment mit größter Wahrscheinlichkeit gar keine Lust, das zu lesen, er braucht das Material irgendwann später - möglicherweise zu einem Zeitpunkt, zu dem ich es auf dem Server gar nicht mehr anbiete. Wenn ich den Usern dann mit einer ewig langen Doku komme, was alles zu tun ist, damit die Datei irgendwann endlich auf seinem Rechner ist, wird er möglicherweise überfordert oder verärgert sein. Denn das ufert ganz schön aus: "falls Sie den InternetExplorer unter Windows benutzen, klicken Sie mit der rechten Maustaste und wählen 'Ziel speichern unter'. Wenn sie den InternetExplorer unter MacOs benutzen, klicken Sie den Link bei gedrückter Apfel-Taste an und" ..."Wenn Sie den NetscapeNavigator unter Windows..."
Kommentar