Php или Apache? Содержимое zip-файла воспроизводится вместо загрузки zip-файла


Я попытался написать php-скрипт для создания и загрузки zip-файла. Когда я тестировал скрипт на своем локальном хостинге, загрузка работала, но когда он загружается на сервер, все идет не так: вместо загрузки zip-файла содержимое файла отображается в браузере.

Может ли кто-нибудь указать мне правильное направление?

Код

   $zip = new ZipArchive();
   $zip->open("$maand/zipfile.zip", ZipArchive::OVERWRITE);
   $zip->addFile("$maand/ant/a_nb.txt", 'ant.txt');
   $zip->addFile("$maand/lim/l_nb.txt", 'lim.txt');
   $zip->addFile("$maand/oos/o_nb.txt", 'oos.txt');
   $zip->addFile("$maand/vla/v_nb.txt", 'vla.txt');
   $zip->addFile("$maand/wes/w_nb.txt", 'wes.txt');
   $zip->close();
   $filename = "zipfile.zip";
   $filepath = "$maand/";
// headers for zip downloads
   header("Pragma: public");
   header("Expires: 0");
   header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
   header("Cache-Control: public");
   header("Content-type: application/zip");
   header("Content-Disposition: attachment; filename=\"".$filename."\"");
   header("Content-Length: ".filesize($filepath.$filename));
   ob_end_flush();
   @readfile($filepath.$filename); 
Author: a4arpan, 2015-12-11

1 answers

Ты пропал без вести ob_start()

Пример:

    header('Content-Type: application/csv');
    header('Content-Disposition: attachement; filename="' . $download . '"');
    ob_start();
    $str = '';
    if(file_exists($file) === true){
        $str = file_get_contents($file);
    }
    ob_end_clean();
    echo $str;
 3
Author: a4arpan, 2015-12-11 07:27:15