Ankündigung

Einklappen
Keine Ankündigung bisher.

datei download mit php

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MofL
    hat ein Thema erstellt datei download mit php.

    datei download mit php

    Hey,

    ich habe ein Problem mit einem Dateidownload.

    PHP-Code:
    if (is_resource ($fh fopen ($file"r"))) 
    {    
        
    fclose($fh);
        
    ob_start();    
        
    header('Content-Description: File Transfer');
        
    header('Content-Type: application/force-download');
        
    header("Content-Disposition: attachment; filename=$titel");
        
    header('Content-Transfer-Encoding: binary');
        
    header('Expires: 0');
        
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        
    header('Pragma: public');
        
    header('Content-Length: ' filesize($file));
        
    ob_clean();
        
    ob_end_flush();
        
    readfile($file);
                    
                    

    zur info, die datei liegt auf einem externen Server von mir und vor dem eigentlichen download muss noch etwas ausgegeben werden.
    -> deswegen ob_start(), ob_flush_end()....

    so jetzt habe ich das Problem, wenn ich die Seite aufrufe, das mir dort soetwas angezeigt wird
    PHP-Code:
    %PDF-1.4 %âãÏÓ 5 0 obj << /Length 6 0 R /Filter /FlateDecode >> stream xœÝks·ñ»~
    woran kann das jetzt liegen?

  • hpf
    antwortet
    Zitat von MofL Beitrag anzeigen
    dort kommt halt diese Ausgabe, als wenn die datei einfach nur gelesen werden würde.
    Mehr passiert ja auch nicht (ob_clean — Löscht den Ausgabepuffer ).
    PHP-Code:
    ob_clean();
    ob_end_flush();
    readfile($file); 

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Ein Script kann in einem Request nicht gleichzeitig Ausgabe und Download sein. Das ist ein Fakt.

    Einen Kommentar schreiben:


  • ByStones
    antwortet
    naja wenn ich kein output buffering benutze dann kommt die header already sent Fehlermeldung, was auch richtig so ist weil ich ja vorher schon eine Ausgabe gemacht habe, deswegen wird dort output buffering benutzt.
    Ich glaube dann solltest du eher die Fehlerbeheben als die ausgabe mit ob_start() abzufangen...
    Wenn header() benutzt wird darf davor noch nichts an den Client geschickt werden.

    Einen Kommentar schreiben:


  • MofL
    antwortet
    naja wenn ich kein output buffering benutze dann kommt die header already sent Fehlermeldung, was auch richtig so ist weil ich ja vorher schon eine Ausgabe gemacht habe, deswegen wird dort output buffering benutzt.

    Auf meinem Server läuft das Skript, aber nicht auf dem Webspace =/,

    dort kommt halt diese Ausgabe, als wenn die datei einfach nur gelesen werden würde.

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    An Deinem Output_Buffering, dessen tieferer SInn sich mir nicht erschließt.

    und vor dem eigentlichen download muss noch etwas ausgegeben werden.
    Kannste vergessen. Wird so nicht funktionieren.

    Einen Kommentar schreiben:

Lädt...
X