Всем доброго времени суток!У меня есть сервер Apache 2.0 + PHP 5. Есть скрипт навигации по файловой системе с поддержкой загрузки файлов.
*********
...
/* вызывается при загрузке файла... */
function do_download($path, $file) {
$get_path = strip_junk($path);
$get_file = strip_junk($file); /* fopen adds \ to ' - so we strip 'em. */
header("Content-Disposition: atachment; filename=" . $get_file);
header("Content-Type: application/octet-stream");
header("Content-Length: " . filesize(DOWNLOAD_PATH . "/$get_path/$get_file"));
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header("Expires: 0");
$fp = fopen(DOWNLOAD_PATH . "/$get_path/$get_file", "rb");
fpassthru($fp);
exit;
}
...
*********
Проблема в том, что при загрузке файлов через IE, к каждому файлу в начало добавляются 2 байта - 0D 0A (перевод строки и возврат карретки). Причем такая "фитча" наблюдается только при использовании IE, а если использовать Firefox или Opera, то загрузка идет без ошибок. Кто-нибь знает в чем тут дело? Куда смотреть? В настройки сервера или браузера, или в сам код скрипта?
Перехват запросов и ответов HTTP Tracer'ом подтверждает то, что сервер возвращает правильный размер файла через Content-Length.