PHPExcel未在mobile Safari中下载
我正在使用它在PHP应用程序中动态生成Excel文件。我使用的是PHPExcel未在mobile Safari中下载,php,mobile-safari,phpexcel,xlsx,force-download,Php,Mobile Safari,Phpexcel,Xlsx,Force Download,我正在使用它在PHP应用程序中动态生成Excel文件。我使用的是Excel2007格式 当用户访问创建并强制下载Excel文件的URL时,除mobile Safari(iPhone和iPad)外,所有浏览器中的一切都能正常运行 以下是我的标题和readfile方法: header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-dispositi
Excel2007
格式
当用户访问创建并强制下载Excel文件的URL时,除mobile Safari(iPhone和iPad)外,所有浏览器中的一切都能正常运行
以下是我的标题和readfile
方法:
header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-disposition: attachment; filename=' . $file_name . '.xlsx;');
header('Content-Length: ' . filesize($path_to_file . '.xlsx'));
readfile($path_to_file . '.xlsx');
当我在mobile Safari中浏览到应该下载.xlsx文件的URL时,我实际上可以看到代表该文件的每个工作表的选项卡,但我看不到这样的实际数据:
此外,我还遇到了另外两种奇怪的行为:
- 如果我在桌面浏览器上下载此文件并通过电子邮件发送给自己,然后在iOS中使用Mail应用程序打开它,则文件显示正确
- 如果我从iOS的邮件应用程序中获取附件并导入到Dropbox中,它将无法正常显示(显示与上面的屏幕截图相同)
- 在Chrome中,文件可以正确下载,并按预期在Excel或甚至数字中打开,但在控制台中我看到以下消息:
Resource被解释为文档,但使用MIME类型的application/vnd.ms Excel传输:
readfile
:
$objWriter->save('php://output');
但是,这会在mobile Safari中产生一个错误,内容如下:
OfficeImportErrorDomain Error 912
为了消除内容类型
这一问题,我尝试将内容类型
调整为其他值(例如application/vnd.ms excel
甚至application/download
)。不幸的是(尽管并不奇怪),这些也不起作用
非常感谢您的指导。我使用
->addHeaderLine('Content-Type','application/octet-stream')
。否则Safari将显示错误。
虽然此标题使其可以在浏览器中显示xlsx文件,但不能下载。我还没有找到任何强制mobile Safari下载的解决方案。headers解决方案有效吗?这似乎是一个非常相似的问题