Cabeçalhos usados ​​para baixar o arquivo php [duplicate]

Duplicata Possível:
php, download de arquivo

Eu tenho arquivos que não estão na raiz da web que preciso disponibilizar para download. Então eu tenho um script que usa o abaixo para baixar o arquivo solicitado. O problema é, eu todo o arquivo baixado está corrompido? Os arquivos estão ok porque se eu usar o FTP para baixar, eles serão abertos. Aqui estão os cabeçalhos passados:

header($_SERVER["SERVER_PROTOCOL"] . " 200 OK");
        header("Cache-Control: public"); // needed for i.e.
        header("Content-Type: " . $download[0]['mime']);
        header("Content-Disposition: attachment; filename=" .$download_file);
        header("Content-Transfer-Encoding: Binary");
        header("Content-Length:".filesize($attachment_location));

        readfile($attachment_location);

questionAnswers(1)

yourAnswerToTheQuestion