如何使用Angular 進行檔案下載 | angular下載
簡介當我們遇到需要從後端進行檔案下載時,因回傳的檔案格式內容常是Binary資料格式,此文章說明如何使用Angular將後端Binary資料格式轉換成檔案格式進行下載動作作者黃紀豪Angular2要透過http的post方法請求下載二進位的檔案文件時,此時後台返回的檔頭如下 並且返回的Response內的資料如下 在Angular框架下我們要如何將其資料轉換成檔案格式進行下載 取得完整的HTTPResponse首先,由於檔案名稱是放在response內的檔頭中,所以我們在取得response資料不只要回傳body,還需要httpheader的資料,因此這時候我們需要將observe的值設為response...
簡介
當我們遇到需要從後端進行檔案下載時, 因回傳的檔案格式內容常是Binary 資料格式, 此文章說明如何使用 Angular 將後端 Binary 資料格式轉換成檔案格式進行下載動作作者
黃紀豪Angular2 要透過 http 的 post 方法請求下載二進位的檔案文件時, 此時後台返回的檔頭如下
並且返回的Response 內的資料如下
在Angular框架下我們要如何將其資料轉換成檔案格式進行下載
取得完整的HTTP Response
首先, 由於檔案名稱是放在response 內的檔頭中, 所以我們在取得response 資料不只要回傳 body,
還需要 http header的資料, 因此這時候我們需要將 observe的值設為 response.
接收非JSON格式的資料
另外, 由於我們接收的是二進位資料, 此資料被儲存為 Blob 格式, 而angular預設值是json, 所以我們需要修改responseType,
將預期會接收到的資料格式設定為『blob』, 其中Blob(Binary Large Object)類型的物件是一個不可變的原始資料(Immutable Raw Data),
類似檔案的二進制資料,通常像是一些圖片、音訊或者是可執行的二進制程式碼也可以被儲存為 Blob。
實際下載檔案的程式碼如下:
downloadPdfPost(paramUrl: string, paramObject: any): Observable<any> { ...