Как скачать файл xlsm с сервера с помощью php?

319
09 августа 2017, 21:11

Нужно скачать с сайта файл в формате 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);

Может, кто знает, что можно сделать?

Answer 1

Проверка наличия файла через 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; 
}
READ ALSO
Динамический контент - возможно?

Динамический контент - возможно?

Можно ли как то с помощью PHP с Javascript , показывать совершенно разный контент (html-кусок) на разных разрешениях

273
Cache::remember с пагинацией и scopeSearch

Cache::remember с пагинацией и scopeSearch

Добрый день всем! В общем, понадобилось реализовать Поиск, пагинацию и кэшПришла и нагуглилась идея о том, что нужно бы отследить на какой...

253
Запретить валидацию в комментариях MODX

Запретить валидацию в комментариях MODX

Всем приветПодскажите, как убрать поле в комментариях на сайте, чтобы оно не проходило валидацию? Есть сайт на MODX

256