Laravel-Excel xlsx下载请求无效

时间:2018-03-15 17:19:36

标签: php http-headers laravel-5.1 xlsx

我使用Laravel中的Maatwebsite / Laravel-Excel(2.1版)库来下载xls文件。

class ControllerApi extends Controller {

     private $excel;

     public function __construct(Excel $excel) {
         $this->excel = $excel;
     }

     public function getXlsFile(Request $request) {
           $this->excel->create("Report2016", function($excel) {

            // Set the title
            $excel->setTitle('My awesome report 2016');

            // Chain the setters
            $excel->setCreator('Me')->setCompany('Our Code World');

            $excel->setDescription('A demonstration to change the file properties');

            $data = [12,"Hey",123,4234,5632435,"Nope",345,345,345,345];

            $excel->sheet('Sheet 1', function ($sheet) use ($data) {
                $sheet->setOrientation('landscape');
                $sheet->fromArray($data, NULL, 'A3');
            });

        })->export("xlsx");
     }
}

enter image description here

enter image description here

即使响应标题似乎没问题,浏览器也不会下载该文件。

任何人都知道我做错了什么?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您无法从ajax请求中下载内容。您的前端可能应该做一些额外的步骤,比如创建一个包含该呼叫内容的链接。

修改

我无法为您准备一些代码,因为我不知道前端是如何制作的。但您可以将lib用作https://github.com/eligrey/FileSaver.js/

例如,当您为电子表格下载一些二进制数据时:

http('yourBackendUrl').then(function(response) {

    var blobData = new Blob([response.data], {type: "application/xlsx"})
    saveAs(blobData, filename+'.xlsx')

}