Download per PHP erzwingen

  • Ich stehe gerade vor einem kleinen Rätsel, wo ich gerade nicht weiter komme:


    Der Download funktioniert, aber die Datei hat die falsche Dateigröße:


    Die Datei ist 109,8kb groß (112.449bytes)

    filesize($file) gibt mir auch 112449 aus, $path sowie $file stimmt auch


    Die Datei ist nach dem Download rund 126kb zu groß und deshalb auch defekt. Gebe ich das "readfile($file)" mit an, ist die Datei stolze 9,1 MB groß



    Wo liegt da mein Denkfehler?

    Linux ist wie guter Sex, man kann es beschreiben oder darüber reden, man weiß erst, was es bedeutet, wenn man es erlebt hat.

  • Nicht mein Fachgebiet, aber: Funktionieren andere Dateien (jpg, pdf....)?

    Eine 1,5MB PDF ist nach dem Download auch nur 233,7kb groß, obwohl "filesize($file)" mir die richtige Größe anzeigt. Mit aktiver Zeile "readfile($file)" ist die Datei 1,7MB groß, scheint aber OK zu sein (zumindest kann ich im PDF keine Fehler sehen)


    Ich habe das ganze noh etwas umgeschrieben, damit dar Mimetype auch passt:


    Linux ist wie guter Sex, man kann es beschreiben oder darüber reden, man weiß erst, was es bedeutet, wenn man es erlebt hat.

  • Meine Vermutung wäre schon, dass es mit Content-Type zu tun haben könnte?!?

    Hast du auch mal verschiedene Browser getestet?

    Ist "Content-Disposition" in deinem Fall nicht überflüssig, oder führt gar zu Problemen. Testweise mal auf einen anderen Dateinamen setzen.

    Leider alles nur Vermutungen....

    Das dachte ich auch, deshalb habe ich es ja noch geändert. Ich habe den Fehler aber gefunden:


    Nach der Zeile "readfile($file);" muss noch ein "exit;" stehen, also so:


    Jetzt stimmt die Dateigröße und das Archiv lässt sich auch entpacken (PDF-Dateien haben jetzt auch wieder die richtige Größe)

    Linux ist wie guter Sex, man kann es beschreiben oder darüber reden, man weiß erst, was es bedeutet, wenn man es erlebt hat.