将xlsx文件传递给angular js

时间:2019-03-06 15:15:44

标签: php angularjs excel filesaver.js

我正在尝试将使用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");

这完美下载了文件,但这是生成的内容:

enter image description here

这是什么问题?

0 个答案:

没有答案