Estoy usando LARAVEL 6.0 en el backend y ANGULAR 8.0.0 en el frontend y quiero saber cómo puedo descargar el archivo generado en el backend para el frontend ANGULAR

public function exportPdf(Book $book)
    {
        $data = ['data' => $book];
        $html = view('book.pdf')->with($data)->toHtml();
        $mpdf = new \Mpdf\Mpdf();
        $mpdf->WriteHTML($html);
        return response()->download($mpdf->Output('test.pdf', \Mpdf\Output\Destination::DOWNLOAD));
    }

Gracias de antemano

-1
Amine Tiyal 1 oct. 2019 a las 20:24

1 respuesta

La mejor respuesta

Lo encontré,

En app.component.ts

import {Component, OnInit} from '@angular/core';
import {DomSanitizer} from '@angular/platform-browser';

@Component({
    selector: 'my-app',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
    name = 'Angular 5';
    fileUrl;

    constructor(private sanitizer: DomSanitizer) {
    }

    ngOnInit() {
        const data = 'some text';
        const blob = new Blob([data], {type: 'application/octet-stream'});

        this.fileUrl = this.sanitizer.bypassSecurityTrustResourceUrl(window.URL.createObjectURL(blob));
    }
}

App.component.html

<a [href]="fileUrl" download="file.txt">DownloadFile</a>

Y aquí está la demostración

1
Amine Tiyal 5 oct. 2019 a las 22:54