我正在尝试将使用excelphp库在php中生成的xlsx文件传递给我在angular js中的前端。要下载文件,我正在使用角度文件保护程序库。所有这些都能正常工作,问题是我无法打开文件,表明文件已损坏。
这是我发送响应类型的php代码:
$response = new Response();
$response->headers->set('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
$response->headers->set('Content-Disposition', 'attachment;filename="' . $fileName . '"');
$response->headers->set('Cache-Control', 'max-age=0');
$response->headers->set('Cache-Control', 'max-age=1');
$response->headers->set('Cache-Control', 'cache, must-revalidate');
$response->headers->set('Pragma', 'public');
$response->headers->set('Access-Control-Allow-Origin', '*');
$response->prepare($request);
$response->sendHeaders();
ob_end_clean();
$objWriter->save('php://output');
exit();
这很好用。
这是我的有角js代码:
const file = await service.exportExcel(itemId);
const blob = new Blob([file], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'});
FileSaver.saveAs(blob, "Export.xlsx");
这完美下载了文件,但这是生成的内容:
这是什么问题?