这个问题有变种。不幸的是他们无法帮助我。
以下代码完美无缺(使用纤薄)。用户头()如果不使用slim。
$response = $res->withHeader('Content-Description', 'My File transfer')
->withHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
->withHeader('Content-Disposition', 'attachment;filename="'.basename($filePath).'"')
->withHeader('Expires', '0')
->withHeader('Content-Transfer-Encoding', 'binary')
->withHeader('Cache-Control', 'must-revalidate')
->withHeader('Pragma', 'public')
->withHeader('Content-Length', filesize($filePath));
readfile($filePath);
我尝试了ob_start,flush,从其他答案结束组合,但没有任何帮助。
我能够在服务器上打开文件,但是在我通过上面的代码下载后尝试打开它时,Excel无法打开它 - Excel无法打开文件,因为文件格式或文件扩展名无效。< / p>
答案 0 :(得分:0)
以十六进制打开文件(源代码和下载文件)以查找明显的差异。
在我的情况下,它是一个领先的0d0a(换行和回车)
这是来自新的一行?&gt; (php关闭标签)!!!我之后删除了新行?&gt;我可以让它工作(可以打开文件)
我希望它有助于某人。刚刚失去了3个小时计算出来。