Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem beim Download Management

Einklappen

Neue Werbung 2019

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

  • Problem beim Download Management

    Hallo,

    habe derzeit folgendes Problem:

    Ich habe eine php Datei die als "Downloader" fungiert.
    Dieser Downloader funktioniert nur wenn der User angemeldet ist und über die geforderten Rechte verfügt.
    Wenn das der Fall ist, stellt sie ihm die Datei direkt als automatisch startenden Download zur Verfügung.
    Hier der Code dafür:
    PHP-Code:
        header("Pragma: public");
         
    header("Expires: 0");
         
    header("Pragma: no-cache");
         
    header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
        
    header("Content-Type: application/zip"); 
        
    header("Content-Disposition: attachment; filename=\"$pdf\"");
        
    header("Content-Length: $z");
          
    readfile($name); 
    Hierbei bekommt der User den eigentlichen Pfad zur Datei nicht zu Gesicht.
    Bei diesem automatisch startenden Download liegt mein Problem.
    Bei mir funktioniert das wunderbar, nun gibt es aber auch User die laden die Datei ohne Endung runter, oder auch andere in denen irgendwelche Informationen über den Header stehen und wieder andere laden eine Datei mit 0Mb runter.

    Wieso?

    Daraufhin dachte ich mir, es mit den absoluten Pfaden zu machen, also klicken zum Downloadstart, und das Verzeichnis mit einer .htaccess zu sichern.
    Aber hierbei habe ich das Problem, dass der User seine zugangsdaten für die .htaccess weitregeben kann und so auch andere ohne zu bezahlen Dateien runterladen können.(bisher würde das von meinem downloader geprüft).

    Habt ihr eine Lösung für mein Problem oder eine Idee wie man das anders umsetzen kann?

    Vielen Dank schonmal für jegliche Hilfe

    MfG

  • #2
    Warum ist dein PDF ein ZIP? Was ist $z, was steht in $pdf? Lass die Cache-Control, das Pragma, und die Expires weg und verwende einen sinnvollen Content-Type entsprechend der Datei. Außerdem kannst du ja einfach mal die variablen Werte über eine Zeit lang mitloggen ..
    "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

    Kommentar


    • #3
      $pdf = pfad des files
      $z = länge bzw größe der datei

      Kommentar


      • #4
        Behauptest du .. wenn alles stimmen würde, gäbe es ja kein Problem, oder? Im übrigen bin ich mir fast sicher, dass einige Angaben, wie genannt, überflüßig sind.
        "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

        Kommentar


        • #5
          ähm, bei mir funktioniert das so auch einwandfrei.
          bei manchen aber treten die oben genannten probleme auf

          Kommentar


          • #6
            Mach doch einfach mal was ich gesagt habe, entfern die entsprechenden Einträge und lass das Logging es eine Zeit lang laufen, bis dir einer in die Falle läuft, oder worüber sollen wir jetzt diskutieren? Dass es bei dir selbst funktioniert hat doch garnichts zu sagen ..
            "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

            Kommentar


            • #7
              ACK.
              Letzten Endes kann das IMHO sogar tw. ein Browsereffekt sein. Einer akzeptiert viell. ein als zip deklariertes PDF, ein anderer verwirft es oder macht andere wunderliche Sachen.
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar


              • #8
                ES IST EIN ZIP!
                Nur der Variablenname in der der Daeiname gespeichert ist heißt $pdf!

                Ich bekomm auch keine Dateigröße beim download angezeigt, obwohl ich eig alles beachtet habe:

                PHP-Code:
                $name $this->folder."/".$pdf;
                $z filesize($name);
                header("Content-Length: ".$z); 
                weiß wer wieso?

                Und ich hab nun ne erste Fehlermeldung bekommen:

                Konnte die End-of-Central-Directory-Signatur nicht finden. Entweder handelt es sich nicht um eine ZIP-Datei oder die Datei ist Teil eines datenträgerübergreifenden Archivs.

                Was sagt mir das??
                Ich lese daraus, dass es am zip File liegt, aber wenn es daran liegen würde, müsste ich doch den gleichen Fehler bekommen, tu ich aber nicht?

                MfG

                Kommentar


                • #9
                  Bei der Dateigröße arbeite ich da mit output buffering.
                  Bsp:
                  PHP-Code:
                      ob_start();
                      echo 
                  $this->image->filecontent;
                      
                  $ImageData ob_get_contents();
                      
                  $ImageDataLength ob_get_length();
                      
                  ob_end_clean();
                      
                  header("Content-Length: ".$ImageDataLength);
                      echo 
                  $ImageData
                  Hast die unnötigen Angaben schon entfernt?
                  I like cooking my family and my pets.
                  Use commas. Don't be a psycho.
                  [URL="http://jscouch.de"]Blog[/URL] - [URL="http://coverflowjs.github.io/coverflow/"]CoverflowJS[/URL]

                  Kommentar

                  Lädt...
                  X