2016-03-11 147 views
0

我想下載由AngularJs中的laravel生成的pdf文件。到目前爲止,我已經能夠從laravel獲取文件,但是當我單擊該操作時,Angular不會下載該文件,而只是返回包含該文件的響應,如下圖所示。文件下載angular和Laravel

Response from laravel returns pdf file

我要如何要下載的文件?

Laravel

public function getPrintInvoice() 
    { 
     $pdf = PDF::loadView('crystal.invoice'); 
     return $pdf->download('hello.pdf'); 
    } 

$http.get('print-invoice'); 

回答

1

因爲$http.get()使用到服務器的響應由XMLHttpResponse對象捕捉,而不是直接呈現給用戶的異步調用。向用戶呈現PDF的最簡單方法是跳過角度呼叫,例如,使用$location.url('/print-invoice');$window.open('/print-invoice');

如果你想用$http方法堅持(例如,如果你希望能夠基於該文件中獲得的成功或失敗來執行一些動作),你需要捕捉的返回值下載並使用HTML5 Blob methods。我建議使用類似Angular File Saver的東西。但它確實需要在服務器端做更多的工作來確保數據在correct format之內。

+0

非常感謝。這就說得通了。 – madSkillz