【发布时间】:2017-07-03 13:37:25
【问题描述】:
我有一种方法尝试发送服务器上存在的 xlsx (Excel 2007) 文件。 xlsx 文件没问题,我可以从服务器(本地)打开它。
但是当从客户端下载文件时,它会损坏。方法如下:
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文件被压缩了,我的方法有点无法正确处理要发送到浏览器的二进制文件。
下面我附上了浏览器接收到的标题。
我有什么遗漏的吗?
【问题讨论】:
-
您必须进行一些调试(并显示结果),如果没有更多信息,人们所能做的就是在黑暗中拍摄,这不是很有帮助。请求文件时发送了哪些标头(检查您的浏览器网络控制台)?下载的内容与服务器上的内容究竟有何不同?
标签: excel file cakephp download send