Ankündigung

Einklappen
Keine Ankündigung bisher.

Download von ZIP-Datei

Einklappen

Neue Werbung 2019

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

  • Download von ZIP-Datei

    Hallo,
    ich habe ein Problem beim Downloaden der ZIP-Datei.

    Ich führe folgenden Code aus:
    $filename = "test.zip";
    $filepath = dirname(dirname(__FILE__))."/downloads/";

    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: public");
    header("Content-Description: File Transfer");
    header("Content-type: application/octet-stream");
    header("Content-Disposition: attachment; filename=\"".$filename."\"");
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".filesize($filepath.$filename));
    ob_end_flush();
    @readfile($filepath.$filename);

    Die Datei wird mir aber nicht zum Download bereitgestellt, sondern im Browser wird der Inhalt der Datei angezeigt, z.B.:
    PK��E�*�� >Dienstplan WK.ics���N�0��} ^-б�WB�i;�65Ӊ�X 3n|z 8�( 7v��w�I��1d9�U�6�S&�K�P�L@V��qT��y�)��������@�;O �*/`Wr@j������\���x��~���ЦL���y9���^�}��(�xt�~� {<�d"��qc9�{��{�S���JmۀN���LAJ B�֊8�V m�c�Ձ�&���}�R%j��+����#���`B-���a�� 8��O�(��@]�7蘞��'PK��E�*�� >��Dienstplan WK.icsPK?9


    Die Datei existiert und der Pfad ist auch korrekt.

    Ich wäre für eure Hilfe sehr dankbar!

  • #2
    Die Frage ist wahrscheinlich obsolet, aber dennoch: Da die Datei offenbar auf dem Webspace liegt, warum nicht direkt auf sie zugreifen lassen?

    Kommentar


    • #3
      Da wird mindestens ein Whitespace ausgegeben oder der Header ist falsch.

      @monolith: Ein solchen Download hat schon Vorteile, du kannst beispielsweise die Dateien vor Zugriff beschränken.
      [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

      Kommentar


      • #4
        Ja und z. B. die Anzahl der Downloads mitzählen, das ist mir schon klar. Wollte nur absolut sicher gehen, dass die TE keinen unnötigen Umweg wählt.

        Kommentar


        • #5
          Um die Anzahl der Downloads zu zählen musst du das nicht durch PHP schleusen. Das kann der Apache noch gut selber: awstats (als Bsp)
          [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

          Kommentar


          • #6
            Ist das sowie der Zugriff auf die Daten aus PHP heraus denn gut machbar?
            Und mit Nginx ebenfalls möglich?
            Und auf managed Webspace bei dem man keinen Zugriff auf den Apache hat?

            Kommentar


            • #7
              Bei meinem Hoster (und jedem weiteren vernünftigen) sind solche Analysetools immer verfügbar.

              Auf nginx ist so etwas sicher auch möglich.

              Und was du mit dem ersten Satz meinst verstehe ich leider nicht.
              [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

              Kommentar


              • #8
                ob_end_flush();
                Wozu?
                [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

                Lädt...
                X