我使用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");
}
}
即使响应标题似乎没问题,浏览器也不会下载该文件。
任何人都知道我做错了什么?
提前致谢。
答案 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')
}