Zum Inhalt springen

naw_securedl Problem mit Safari

Erstellt am 17. April 2008 · 6 Antworten · letzte Antwort am 29. Mai 2009

Tags: Frage

crossl ·

Hallo,
ich verwende Typo3 3.8.x mit naw_securedl, das funktioniert auch einwandfrei, NUR nicht mit Safari 3.1 am Mac.
Da bekomme ich beim Download Versuch immer einen "Access denied" - Firefox und Internet Explorer auf Windows und Mac machen keine Problem...

Wer hat eine Lösung für mich?

klaus2008 ·

Hallo!

Bei mir gab's das selbe Problem bzgl. PDFs. Der Safari unter OSX hat offenbar Probleme mit der Inline-Darstellung einer Reihe von Content-Types. Ich vermute, dies betrifft aber nicht nur PDF, sondern auch Videos usw. (habe ich aber nicht getestet).

Das Problem liegt in der Datei EXT:naw_securedl/class.tx_nawsecuredl_output.php

Und zwar kann der Safari offenbar nichts anzufangen mit den Zeilen

header('Content-Type: '.$contenttypedatei);
header('Content-Disposition: inline; filename="'.basename($file).'"');

Das Skript landet beim Safari dadurch irgendwie in einer Schleife, die Variable $feuser löst sich in Luft auf, das Skript landet schließlich bei

exit ('Access denied!!') )

LÖSUNG:

Wenn man nun die Zeile

header('Content-Disposition: inline; filename="'.basename($file).'"');

ändert in

header('Content-Disposition: attachment; filename="' . basename($file) . '"');

werden auch im Safari die Dateien ausgeliefert.

Unschön hierbei ist ggf., dass damit alle Dateien sämtlicher Content-Types extern geladen werden (also nicht mehr inline im Browser, sondern mit einem externen Programm, also unter OSX bspw. "Vorschau").
Dem ließe sich wieder mit einer Weiche abhelfen wie folgt (im Bsp. werden nur PDFs "extern" ausgeliefert; lässt sich sicher schöner lösen):

if ($contenttypedatei != "application/pdf")
  header('Content-Disposition: inline; filename="'.basename($file).'"');
else
  header('Content-Disposition: attachment; filename="' . basename($file) . '"');

Drauf gekommen bin ich im Übrigen durch diese Seite: http://underdevelopment.maravillaclan.net/?p=5

Den Urheber der Extension habe ich bereits kontaktiert; vielleicht wird das dann in der offiziellen Version gefixed.

Grüße, Klaus

Pom ·

Man kann auch einfach in den Einstellungen der Ext (im Ext-Manager) das Häkchen bei "forcedownload" setzen und die entsprechenden Dateiendungen angeben, dann wird die Content-Disposition automatisch auf attachment gesetzt.

Vielleicht hat der Autor das ja gemacht, weil ihr ihn kontaktiert hat? 🙂

Gruß