Добрый день! Наверное, каждый хоть раз сталкивался с такой проблемой. Матерился и перешагивал ее по своему. При отправке файлов пользователю он или вообще не получает файл или получает, но с неправильным названием. Я веду борьбу с этим несчастьем уже долгое время и накопил большой опыт. Причина этого в том, что я не прописываю имена файлов в коде, они динамически составляются из разных строк, на которые не наложено никаких ограничений. Это могут быть названия чего либо, даты, записки пользователя, строки из внешних систем и т.п. Я сталкивался и побеждал несколько причин таких ошибок. Вот они: 1. Слишком длинное имя файла. Некоторые браузеры этого не переваривают- они просто режут его и пользователь получает файл без расширения; 2. В названии встречаются запрещенные символы типа «/», «\», «?» и т.п.; 3. В названии русские буквы. Опять же некоторые браузеры не обращают на это внимание, а например Сафари выдает абракадабру; 4. В названии файла пробелы Посему открываю эту тему. Как всегда интересно послушатьть, кто как с этим борется. Сразу выкладываю свое решение: PHP: <?php static function SafeFileName($fileName) { $fileName= ereg_replace('[:/\\\" ]', ' ', $fileName); //(буква от 1 до 75)буквы.(неточки) $name= ereg_replace("^(.{1,75}).*\\.([^\\.]+)$", "\\1", $fileName); $ext= ereg_replace("^(.{1,75}).*\\.([^\\.]+)$", "\\2", $fileName); $cl= new CyrLat(); return "{$cl->cyr2lat($name)}.{$ext}"; } Тут смысл в том, что по очереди побеждаются все четыре причины ошибок. Кстати отсылаю файл вот так: PHP: <?php header("Content-Disposition: attachment;filename={$safeFileName}"); то есть имя файла не в кавычках. Некоторые умные браузеры понимают и так и эдак, поэтому опытным путем невозможно понять какой способ правильный. Но где-то в нете точно помню, читал, что правильно без кавычек. По поводу 3-го и 4-го пунктов много раз читал, что надо делать urlencode() и все будет хокей, но опять же в некоторых браузерах пользователи получали эту самую урлэнкоду вместо имени файла. Согласен, что такой путь не идеален. Для пользователя не очень приятно получить Отчет Инвентаризация ЗАО "Сургутский электрический свет" в виде Otchet_Inventarizatsiya_ZAO__Surgutskij_elektricheskij_svet_.xlsx И единственное почему я это делаю, это железобетонно работает. Во всех осях, во всех локалях и во всех браузерах. Безотказно, как автомат Калашникова.