naw_securedl Problem mit Safari

  • crossl crossl
    Sternenflotten-Admiral
    0 x
    216 Beiträge
    0 Hilfreiche Beiträge
    17. 04. 2008, 11:19

    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?


  • 1
  • nagus nagus
    Sternenflotten-Admiral
    0 x
    240 Beiträge
    0 Hilfreiche Beiträge
    13. 05. 2008, 10:34

    selbiges hier :(

    WHY???????

  • sprain sprain
    R2-D2
    0 x
    109 Beiträge
    0 Hilfreiche Beiträge
    21. 11. 2008, 17:14

    Hier dasselbe Problem…

  • klaus2008 klaus2008
    Jar Jar Binks
    0 x
    1 Beiträge
    0 Hilfreiche Beiträge
    15. 12. 2008, 19:21

    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

    1. header('Content-Type: '.$contenttypedatei);
    2. 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

    1. exit ('Access denied!!') )

    LÖSUNG:

    Wenn man nun die Zeile

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

    ändert in

    1. 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):

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

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

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

    Grüße, Klaus

  • sprain sprain
    R2-D2
    0 x
    109 Beiträge
    0 Hilfreiche Beiträge
    15. 12. 2008, 23:06

    Vielen Dank, werde ich anschauen!

  • Pom Pom
    Padawan
    0 x
    34 Beiträge
    0 Hilfreiche Beiträge
    22. 05. 2009, 12:05

    Hey,

    danke für den Lösungsweg!

  • Pom Pom
    Padawan
    0 x
    34 Beiträge
    0 Hilfreiche Beiträge
    29. 05. 2009, 11:00

    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ß

  • 1