【angular5项目积累总结】文件下载
- download() {
- const token = localStorage.getItem('token');
- let headers: HttpHeaders = new HttpHeaders();
- headers = headers
- .set('Authorization', 'Bearer ' + token);
- const url = 'http://localhost:8764/api/v1/user/downLoadZipFile';
- this.http.get(url, {headers: headers, observe: 'response', responseType: 'blob'}).subscribe(response => {
- console.log(response);
- console.log(response.headers.keys());
- this.downloadFile(response);
- }, (error: HttpErrorResponse) => {
- console.log(error.error);
- });
- }
- downloadFile(data: HttpResponse<Blob>) {
- const file = new Blob([data.body], {type: 'application/zip'});
- const a = document.createElement('a');
- a.id = 'tempId';
- document.body.appendChild(a);
- a.download = 'haha.zip';
- a.href = URL.createObjectURL(file);
- a.click();
- const tempA = document.getElementById('tempId');
- if (tempA) {
- tempA.parentNode.removeChild(tempA);
- }
- }
- }
- var blob = new Blob([res], {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});
- var objectUrl = URL.createObjectURL(blob);
- var a = document.createElement('a');
- document.body.appendChild(a);
- a.setAttribute('style', 'display:none');
- a.setAttribute('href', objectUrl);
- a.setAttribute('download', fileName);
- a.click();
- URL.revokeObjectURL(objectUrl);
通用下载代码JS:
- downloadFile(filePath: any) {
- this.meetingService.downloadFile(filePath, rtv => {
- if (rtv) {
- let _blob = new Blob([rtv]);
- let _filename = filePath.substring(filePath.lastIndexOf('_') + 1);
- if (window.navigator && window.navigator.msSaveOrOpenBlob) {
- window.navigator.msSaveOrOpenBlob(_blob, _filename);
- } else {
- let _link = document.createElement('a');
- let _url = window.URL.createObjectURL(_blob);
- document.body.appendChild(_link);
- _link.setAttribute('style', 'display:none');
- _link.href = _url;
- _link.download = _filename;
- _link.click();
- window.URL.revokeObjectURL(_url);
- _link.remove();
- }
- } else {
- alert('下载失败,请稍后重试!');
- }
- });
- }
参考文章:
https://www.cnblogs.com/liugang-vip/p/7016733.html
【angular5项目积累总结】文件下载的更多相关文章
- 【angular5项目积累总结】遇到的一些问题以及解决办法
1.项目中字符串特别是\r\n,替换成br之后,在页面换行无法生效? 答:绑定元素 innerHTML. <div class="panel-body" [innerHTML ...
- 【angular5项目积累总结】消息订阅服务
code import { Injectable } from '@angular/core'; import { Subject } from 'rxjs/Subject'; @Injectable ...
- 【angular5项目积累总结】侧栏菜单 navmenu
View Code import { Component, OnInit } from '@angular/core'; import { HttpClient } from '@angular/co ...
- 【angular5项目积累总结】avatar组件
View Code import { Component, HostListener, ElementRef } from '@angular/core'; import { Adal4Service ...
- 【angular5项目积累总结】breadcrumb面包屑组件
view code <div class="fxs-breadcrumb-wrapper" aria-label="Navigation history" ...
- 【angular5项目积累总结】结合adal4实现http拦截器(token)
import { Injectable } from '@angular/core'; import { HttpEvent, HttpInterceptor, HttpHandler, HttpRe ...
- 【angular5项目积累总结】文件上传
<div class="form-group row"> <label class="col-sm-2 col-form-label"> ...
- 【angular5项目积累总结】自定义管道 OrderBy
import { Injectable, Pipe } from '@angular/core'; @Pipe({ name: 'orderBy' }) @Injectable() export cl ...
- 【angular5项目积累总结】一些正则积累
/^[1-9][0-9]{0,4}$/ /^[1-9][0-9]{0,4}(,[1-9][0-9]{0,4})*$/ /^([a-zA-Z0-9_\-])+\@(([a-zA-Z0-9\-])+\.) ...
随机推荐
- BitAdminCore框架更新日志20180522
20180522更新内容 本次更新增加了excel导入导出示例,QuerySuite组件实现导出导出,用最少代码,做最多的事,代码就是如此简单. 计划修改内容 1.人脸登录功能需要重构,目前功能不完善 ...
- AJPFX的资金安全性
AJPFX承诺保证客户资金安全,并严格按照英国的相关规章制度从事经营活动.客户资金存放于投资级银行的独立账户中.通过实行公司资产与客户资金分别保管,在发生无偿债能力的罕见情况下,客户可获退还独立存放资 ...
- python 神经网络包 NeuroLab
neurolab模块相当于Matlab的神经网络工具箱(NNT) neurolab模块支持的网络类型: 单层感知机(single layer perceptron) 多层前馈感知机(Multilaye ...
- 【算法】Matrix - Tree 矩阵树定理 & 题目总结
最近集中学习了一下矩阵树定理,自己其实还是没有太明白原理(证明)类的东西,但想在这里总结一下应用中的一些细节,矩阵树定理的一些引申等等. 首先,矩阵树定理用于求解一个图上的生成树个数.实现方式是:\( ...
- MySQL(分组、连表操作、备份数据库)
day58 分组 参考:https://www.cnblogs.com/xp796/p/5262187.html select dept, max(salary) from department gr ...
- Windows 内核漏洞学习—空指针解引用
原标题:Windows Kernel Exploitation – NullPointer Dereference 原文地址:https://osandamalith.com/2017/06/22/w ...
- mysql enterprise backup入门使用
**************************************************************--1.全备******************************** ...
- java验证身份证合理性
package com.tiantian.util; import java.util.Calendar;import java.util.HashMap;import java.util.Map;i ...
- jvm(2)类的初始化(一)
[深入Java虚拟机]之三:类初始化 类初始化是类加载过程的最后一个阶段,到初始化阶段,才真正开始执行类中的Java程序代码. 1,下面说的初始化主要是类变量的初始化,实例变量的初始化触发条件不同(一 ...
- call、apply、bind的异同
一.call.apply.bind的异同 JavaScript中函数可以通过3种方法改变自己的this指向,它们是call.apply.bind.它们3个非常相似,但是也有区别.下面表格可以很直观看出 ...