readfile возвращает поврежденный zip-файл - PullRequest
0 голосов
/ 08 июня 2018

В моем приложении Phalcon есть следующий код:

public function downloadAction($key = NULL) {
    if ($key == NULL) {
        return $this->respondDownloadFailed();
    }

    $url = Urls::findFirst("token = '".$key."'");

    if ($url) {
        $path = $url->getUrl();

        $ext = pathinfo($path, PATHINFO_EXTENSION);

        header("Content-type: application/".$ext); 
        header("Content-Disposition: attachment; filename=".$key.".".$ext);
        header("Content-length: " . filesize($path));
        header("Pragma: no-cache"); 
        header("Expires: 0"); 

        ob_clean();
        flush();

        readfile($path);
        unlink($path);
        die;
    }

    return $this->respondDownloadFailed();
}

Теперь, когда на сервере создается .zip, я могу открыть и распаковать его.Однако, когда я загружаю его с помощью приведенного выше кода, я получаю zip-файл, который затем распаковывается в файл .cpgz.Разархивируя это, я снова получаю .zip.Есть идеи о том, что идет не так?

...