Заголовки, используемые для загрузки файла php

Возможный дубликат:
php, file загрузить

У меня есть файлы, которые не входят в веб-корневой каталог, который мне нужно сделать доступным для загрузки. Поэтому у меня есть сценарий, который использует ниже, чтобы загрузить запрошенный файл. Проблема в том, что каждый загруженный файл поврежден? Файлы в порядке, потому что, если я использую FTP для загрузки, они открываются. Вот те заголовки, которые прошли:

header($_SERVER["SERVER_PROTOCOL"] . " 200 OK"); header("Cache-Control: public"); // needed for ie 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); 

Ниже приведен пример заголовков, используемых для этого:
http://php.net/manual/en/function.readfile.php

  header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file));