У меня есть метод, который пытается отправить файл xlsx (Excel 2007), который существует на сервере. Файл xlsx в порядке, я могу открыть его (локально) с сервера.Отправить двоичный файл (файл Excel) в браузер в CakePHP 3.3
Но когда файл загружен с клиентской стороны, он становится поврежденным. Вот метод:
public function exportToExcel()
{
$fileName = ROOT . '/files/xls' . DS . 'assessors.xlsx';
$this->autoRender = false;
$assessors = $this->StaAssessors->find('all');
$this->Utils->exportToExcel($fileName, $assessors);
$this->response->type('xlsx');
$this->response->file($fileName, ['download' => true ]);
return($this->response);
}
Я думаю, проблема в том, что файл Excel сжимается, и мой метод несколько не может работать правильно двоичный файл, который будет отправлен в браузер.
Ниже я прикреплял заголовки так, как они получены браузером.
Есть ли то, что я не хватает?
Вам нужно будет отлаживать (и показывать результаты), без дополнительной информации, все, что могут сделать люди, это стрелять в темноте, что не очень полезно. Какие заголовки отправляются при запросе файла (проверьте сетевую консоль браузеров)? Как точно скачанный контент отличается от содержимого на сервере? – ndm