В моем приложении laravel 5.8 мне удалось создать файл с помощью https://github.com/spatie/browsershot и загрузить его в элемент управления:
$save_to_file = 'generate_profile_card_' . Session::getId() . '_' . $filename_to_save;
if ( strtolower($option_output_file_format) == 'pdf' ) {
Browsershot::html(htmlspecialchars_decode($pdf_content))
->showBackground()
->save($save_to_file);
\Response::download( $save_to_file, $save_to_file, array('Content-Type: application/octet-stream','Content-Length: pdf') );
return response()->download( $save_to_file, $filename_to_save );
Я генерирую уникальное имя в переменной $ save_to_file, и файл загружается нормально, но в приведенном выше методе управления я возвращаюсь с методом загрузки, но мне также нужно:
1) удалить скачанный файл $ save_to_file
2) перенаправить сообщение о том, что загрузка прошла успешно.
Это кажется хитрым, так как этот метод контроля требует возврата. Если комментировать последний
вернуться ...
файл вообще не скачивается. Этот метод управления представлен формой submit:
<form method="POST" action="{{ url('/profile/generate-pdf-by-content') }}" accept-charset="UTF-8" id="form_print_to_pdf_content" name="form_print_to_pdf_content"
enctype="multipart/form-data">
{!! csrf_field() !!}
Если есть способ запустить некоторый код после
return response()->download( $save_to_file, $filename_to_save
);
при успешной загрузке?