Нужно скачать с сайта файл в формате xlsm. Он лежит на сервере и если его перекинуть через ftp на компьютер, то все хорошо. А если скачивать с сайто, он не открывается, выходит ошибка "Формат или расширение файла являются недопустимыми". Скачиваю так же файл xls, он открывается, но русские символы отображаются в виде закорючек.
header("Content-Type: application/vnd.ms-excel;charset:utf-8");
header("Content-Disposition: attachment; filename=" . $fileName);
echo file_get_contents('uploads/results/'.$toReturn->result);
Может, кто знает, что можно сделать?
Проверка наличия файла через file_exists() и его отдача через readfile() + правильный Content-Type для .xlsm и исправление ошибки в Content-Disposition:
$file = 'uploads/results/' . $toReturn->result;
if (! file_exists($file)) {
exit('Нет файла или он лежит в другом месте :Р');
} else {
# // для .xlsm
# header('Content-Type: application/vnd.ms-excel.sheet.macroEnabled.12');
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.$fileName.'"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости