Para facilitar o uso de um plugin jquery que implementa um ajax como a experiência de download:
http://johnculviner.com/jquery-file-download-plugin-for-ajax-like-feature-rich-file-downloads
A implementação requer que um cabeçalho específico seja enviado de volta como parte da resposta do lado do servidor, o que atualmente não pode ser feito dentro do método LaravelExcelWriter::_download()
.
Utilizar um evento antes de enviar cabeçalhos permitiria que os cabeçalhos padrão fossem ajustados de forma flexível conforme necessário.
1.3.0 terá a capacidade de passar uma matriz de cabeçalhos como o segundo parâmetro do método export()
:
->export('xls', [
'Set-Cookie' => 'fileDownload=true; path=/'
]);
Como posso fazer isso com a versão 3.1?
@ andreshg112 você pode adicionar o use Exportable;
Concern à classe, por exemplo
class MyExportClass implements FromView
{
use Exportable;
}
Em seguida, em seu controlador, você pode adicionar o cabeçalho:
return (new MyExportClass())->download('myexportfile.xlsx', \Maatwebsite\Excel\Excel::XLSX, [
'X-Vapor-Base64-Encode' => 'True'
]);
A documentação está aqui, também demorei um pouco para descobrir: https://docs.laravel-excel.com/3.1/exports/exportables.html
Comentários muito úteis
1.3.0 terá a capacidade de passar uma matriz de cabeçalhos como o segundo parâmetro do método
export()
: