Смотрите ваш синтаксис рядом с
header('Content-Disposition: attachment; filename="'.$file_name_with_space. '"');
ИЛИ это может быть
header("Content-Disposition: attachment; filename='".$file_name_with_space."'" );
Здесь игра в кавычках, она будет считаться частью строки, если она написана правильно, иначе произойдет сбой.
Работает во всех браузерах. IE, FF, Chrome, SAFARI Я проверил это лично, так что вперед.