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

  • 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?


  • #2
    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.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      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.

      Kommentar


      • #4
        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.
        Signatur:
        PHP-Code:
        $s '0048656c6c6f20576f726c64';
        while(
        $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

        Kommentar


        • #5
          Ein Script kann in einem Request nicht gleichzeitig Ausgabe und Download sein. Das ist ein Fakt.
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar


          • #6
            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); 

            Kommentar

            Lädt...
            X