Angular 10 / Typescript 中是否有任何可能的方式從 URL 下載 PDF 而不是在新選項卡中打開它?
示例網址:http : //www.africau.edu/images/default/sample.pdf
uj5u.com熱心網友回復:
如果您需要下載并保存它,那么@sasa 建議的帶有下載屬性的錨標記就足夠了。這是 Angular 的一些示例代碼。
<a [href]="url" download>Click to download</a>
如果您想以編程方式下載您需要使用HttpClient來自 Angular的檔案:
安裝此依賴項以使您的生活更輕松:
npm install file-saver --save
npm install -D @types/file-saver
并擁有通用服務
import {saveAs} from 'file-saver'
@Injectable({ providedIn: 'root' })
export class DownloadService {
constructor(private http: HttpClient) {}
downloadUrl(url: string, filename: string): Observable<Blob> {
return this.http.get(url, {responseType: 'blob' }).pipe(
map(res => res.blob()),
tap(blob => saveAs(blob, filename))
)
}
}
請注意,呼叫該函式不會下載檔案;你需要subscribe給Observable<Blob>退回或將其改造成一個Promise并等待它
uj5u.com熱心網友回復:
對不起,如果我太明顯了,但標簽的download屬性a不起作用?
uj5u.com熱心網友回復:
您通常需要將內容型別設定為 application/octet-stream 以通知瀏覽器它應該下載它而不是在選項卡中顯示它。不確定在 Angular 10 / Typescript 中具體如何:
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/409243.html
標籤:
下一篇:如何從NGRX存盤中線性獲取資料
