He Tom,
längere PDF-Dokumente werden heutzutage üblicherweise chunked übertragen
Wo hast Du denn diesen Unsinn her?
Ansonsten:
header('Content-Length: ' . filesize($zipfile));
heißt dass der Server die Dateilänge ja kennt und demzufolge gar kein Transfer-Encoding: chunked
macht.
MfG