0

对于我的项目,我使用 PHPSpreadsheet 以 Excel 和 PDF 格式导出数据。如果从网站上,当我按下相应的下载按钮时,我可以轻松下载 .xlsx 和 .pdf 文件,我的应用程序有问题(iOs Swift 语言)。事实上,当我尝试下载文件时,我会收到以下消息:

  • 对于 Excel 文件:“文件可能已损坏”
  • 对于 PDF 文件(我用 Chrome 打开它):“Chrome 不支持此链接文件:///var/mobile/Containers/Data/Application/.../Documents/name_file.pdf”

以下是处理下载的 PHP 代码片段:

PDF:

$ output. = '... html code';
$ mpdf = new \ Mpdf \ Mpdf ();
$ mpdf-> Bookmark ('Start of the document');
$ Mpdf-> WriteHTML ($ output);
$ mpdf-> Output ($ filename.'. pdf', 
\Mpdf\Output\Destination::DOWNLOAD);

优秀:

$spreadsheet = new Spreadsheet();  /*----Spreadsheet object-----*/
$Excel_writer = new Xlsx($spreadsheet);  /*----- Excel (Xls) Object*/

/* ...riempiendo foglio excel con i dati */

header('Content-Type: application/vnd.openxmlformats-
officedocument.spreadsheetml.sheet');
header('Content-Disposition: 
attachment;filename="'.$filename.'.xlsx"');
header('Cache-Control: max-age=0');
$Excel_writer->save('php://output');

谢谢你的帮助!

4

1 回答 1

0

对于 Excel 文件:“文件可能已损坏”

我的盲目猜测是,当您查看文件内容时,您会发现Headers already sentPHP 消息污染了您的文件。如果是这样,只需在调用任何s之前调用ob_start()即可。header()

于 2018-03-11T11:50:25.803 回答