Komplexer Download



  • Abend zusammen,
    ich generiere mit PHP für den Anwender eine bestimmte Datei. Eine Weiterleitung auf die Datei funktioniert, nur weiß ich nicht wie ich den jeweiligen Mime-Type per Hand setze. Nachdem der Download angestoßen wurde, soll der Anwender wieder zur nächsten Seite geleitet werden...jedoch weiß ich auch hier nicht ich das anstellen soll. Rumprobier habe ich bereits ausreichend 🙂 Danke.



  • Herrmann schrieb:

    nur weiß ich nicht wie ich den jeweiligen Mime-Type per Hand setze.

    header('Content-type: '.mime_content_type($file));

    Herrmann schrieb:

    Nachdem der Download angestoßen wurde, soll der Anwender wieder zur nächsten Seite geleitet werden...jedoch weiß ich auch hier nicht ich das anstellen soll.

    Da fällt mir jetzt spontan auch nichts gescheites ein 😞



  • @flenders, das festlegen des Mime-Types funktioniert. Danke. Sollte jemand zufällig auf eine Lösung für mein zweites Problem stoßen, wäre ich ebenfalls sehr dankebar 🙂



  • Ansonsten mein ich funktionierte es eigentlich auch immer, wenn man
    header("Content-Type: APPLICATION/OCTET-STREAM");
    angibt...
    Das is insbesondere dann praktisch, wenn man kein PHP4 >= 4.3.0 hat (wie mein webserver 😕 )

    Aber ich missbrauche den Thread (ja ich weiss eine Frage pro thread....)

    Bei einem solchen Download(also mit readfile und headern) wird keine Dateigrösse angegeben...
    Ist es irgendwie möglich diese in einem Header mitzusenden? 😕



  • php.net schrieb:

    header ("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header ("Content-Type: application/octet-stream");
    header ("Content-Length: " . filesize($theFile));
    header ("Content-Disposition: attachment; filename=$theFileName");
    readfile($theFile);
    


  • Wenn du einen Download startest, bleibt der Browser ja bei der Seite, wo er vorher war und öffnet die angegebene Datei z.B. in einem Downloadmanager. So lässt sich höchstens mit Javascripteine Weiterleitung basteln:

    document.location.href='...';
    


  • Flenders du bis et!
    Vielen Dank 😉

    Content-Lenght... Muss man erstmal drauf kommen 😉

    Aber was genau bewirkt
    header ("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    ?
    Das die Datei nicht gecached wird, sondern immer, bei jedem "auswählen" neu geladen wird?
    Wäre ja vielleicht auch was, was auf immer wechselnden Seite rein könnte, oder?
    Damit das Problem nich vorkommt, das zum Beispiel ein Thread nach einer Anwtwort immernoch gleich aussieht... oder so in der art...

    Aber versteh ich das richtig?



  • @flenders, dank dir..und auch den anderen 🙂 Hat mir schon mal sehr geholfen. Falls ich dabei noch ein Problem habe, melde ich mich nochmal.


  • Mod

    Vernochan.faul schrieb:

    Das die Datei nicht gecached wird, sondern immer, bei jedem "auswählen" neu geladen wird?

    Ja, funktioniert aber nicht bei allen Browsern
    Wenn du alle Browser am cachen hindern willst, dann pack alle möglichen Pragmas + Cache-Control rein und überig immer eine zufällig erstellte Zahl (um die URL zu ändern) per GET.

    Wäre ja vielleicht auch was, was auf immer wechselnden Seite rein könnte, oder?

    Ja, siehe oben.



  • @Herrmann, kannst du auch alles nochmal hier nachlesen 😉

    http://de.php.net/manual/de/function.header.php



  • Naja.. das mit der Zufallszahl lass ich mal bleiben.. Das stört nur beim Link weitergeben 😉
    Aber danke für den Hinweis.


Anmelden zum Antworten