当前位置: 首页 > 编程日记 > 正文

Angular 文件上传与下载

Angular文件上传与下载

  • 文件上传
    • 方式1 使用NG ZORRO中的组件。
  • 文件下载
    • 方式1 直接下载
    • 方式2 通过HTTP请求后端数据的方式进行下载


文件上传

方式1 使用NG ZORRO中的组件。


文件下载

方式1 直接下载

已知明确的下载链接,可以直接进行下载。

<a href="downloadUrl" download="fileName">下载</a>

方式2 通过HTTP请求后端数据的方式进行下载

在Angular中使用HttpClientPOST请求处理文件响应数据。

   /*** 文件下载* @param url 下载URL,【该URL需要加入到拦截器的白名单中】* @param savedName 存储在本地的文件名称加后缀* @param paramsObj 接口参数对象* @param successCallback 下载成功的回调函数* @param errorCallback 下载出错的回调函数*/downloadFile(url: string, savedName: string, paramsObj: object, successCallback, errorCallback) {const params = {...paramsObj};for (const key in params) {if (params[key] === '' || params[key] === null || params[key] === undefined) {delete params[key];}}this.http.post(this.url + url, params, {responseType: 'blob',headers: new HttpHeaders({'Content-Type': 'application/json',}),}).subscribe((result) => {const contentType = 'application/octet-stream;charset=UTF-8';const blob = new Blob([result], { type: contentType });// 创建一个URL对象const objectURL = window.URL.createObjectURL(blob);const a = document.createElement('a');a.href = objectURL;a.download = savedName; // 此处的savedName为保存到本地的文件名称及后缀a.click();// 释放已创建的URL对象window.URL.revokeObjectURL(objectURL);successCallback();}, (error) => {errorCallback(error);});}

示例:

exportExcel() {const savedFileName = '表格测试' + '.xls';const params = {// 参数信息};const successCallback = () => { // 成功回调// other code for success};const errorCallback = () => { // 失败回调// other code for fail};this.service.downloadFile('测试url', savedFileName, params, successCallback, errorCallback);}

— END —

相关文章:

包装类接受string 会自动将数字类型string转换成对应得包装类型

转载于:https://www.cnblogs.com/classmethond/p/10663229.html

tensorflow常用函数解析

一、tf.transpose函数的用法 tf.transpose(input, [dimension_1, dimenaion_2,..,dimension_n]):这个函数主要适用于交换输入张量的不同维度用的&#xff0c;如果输入张量是二维&#xff0c;就相当是转置。dimension_n是整数&#xff0c;如果张量是三维&#xff0c;就是用0,1,2…

FLASH处理图像的移动、缩放、旋转、颜色变换的类推荐。

这3个都是比较好的外部类&#xff0c;帮助操作图像的。 教程也比较详细。 看了以后发现&#xff0c;需要把图形学的书翻出来再补补课鸟... http://www.adobe.com/devnet/flash/articles/matrix_transformations_print.html http://blog.joa-ebert.com/imageprocessing-library/…

机器学习——XGBoost大杀器,XGBoost模型原理,XGBoost参数含义

0.随机森林的思考 随机森林的决策树是分别采样建立的&#xff0c;各个决策树之间是相对独立的。那么&#xff0c;在我们得到了第k-1棵决策树之后&#xff0c;能否通过现有的样本和决策树的信息&#xff0c; 对第m颗树的建立产生有益的影响呢&#xff1f;在随机森林建立之后&…

使用存储过程更新数据库!成功了但是返回值为 -1 的变态问题的解决办法!

今天遇到个表态的问题&#xff01;使用带事务的存储过程执行sql语句&#xff0c;看数据库里面插入更新都正常&#xff01; 但是返回值一直为-1&#xff01; 头那个大哦&#xff01;先贴2个存储过程吧&#xff01;看大侠们能否找到问题的存在 USE [My_DB] GO/****** Object: St…

poj2289二分图多重匹配

题意&#xff1a;给你一张二分图&#xff0c;求右边点到汇点的最小容量&#xff08;保证流量为n&#xff09;是多少 题解:二分答案&#xff0c;每次重新建边跑最大流&#xff0c;看是不是为n就好了 #include<map> #include<set> #include<cmath> #include<…

Express应用配置端口

Express应用设置端口方法1 静态修改--直接修改代码中配置的默认端口号方法2 动态修改--修改代码逻辑使其获取启动命令中的端口号参数相关文章在Express应用创建成功后&#xff0c;应用会自动配置一个端口号&#xff0c;比如3000&#xff0c;有时会遇到端口号被占用的情况&#…

Oracle中PL/SQL的循环语句

PL/SQL的三种形式的循环&#xff1a;1.LOOP&#xff08;无条件循环&#xff09;&#xff1a;loopstatements;end loop;2.WHILE&#xff08;有条件循环&#xff09;&#xff1a;while condition loopstatements;end loop;3.FOR&#xff08;固定次数循环&#xff09;&#xff1a;…

处理器调度算法

1. P117页,练习15&#xff1a;最高响应比 HRRF&#xff1a; 作业 提交时刻 运行时刻 开始时刻 完成时刻 周转时间/min 带权周转时间/min 1 10:00 2:00 10:00 12:00 120 120/120 2 10:10 1:00 12:25 13:25 195 195/60 3 10:25 0:25 12:00 12:25 120 …

bzoj4516

后缀自动机 留个板子 upd:大概懂了 每次新加入的npRight集合肯定只有最后一个位置&#xff0c;那么求所有长得不一样的子串贡献就是Max-Min1,因为Right集合只有这一个位置&#xff0c;所以这Max-Min1个子串只出现在最后一个位置。 #include<bits/stdc.h> using namespace…

npm : 无法加载文件 D:\...\nodejs\npm.ps1,因为在此系统上禁止运行脚本

问题&#xff1a; 在VSCode终端使用npm命令时&#xff0c;出现如下报错信息&#xff1a; npm : 无法加载文件 D:\ProgramFiles\nodejs\npm.ps1&#xff0c;因为在此系统上禁止运行脚本。有关详细信息&#xff0c;请参阅 https:/go.microsoft.com/fwlink/?Link ID135170 中的 …

Mybatis注解学习记录

Mybatis注解使用1. SQL语句映射1.1 Select注解&#xff1a;实现查询功能1.1.1 用法1.2 Insert注解&#xff1a;实现新增功能1.2.1 用法1.3 Update注解&#xff1a;实现更新功能1.3.1 用法1.4 Delete注解&#xff1a;实现删除功能1.4.1 用法2. 结果集映射2.1 Results注解&#x…

路由和交换机工作原理

路由器与交换机的工作原理 计算机网络往往由许多种不同类型的网络互连连接而成。如果几个计算机网络只是在物理上连接在一起&#xff0c;它们之间并不能进行通信&#xff0c;那么这种“互连”并没有什么实际意义。因此通常在谈到“互连”时&#xff0c;就已经暗示这些相互连接的…

嵌套选项卡自动播放

HTML <div class"box" id"box"><ul class"top" id"top"><li class"fl">专题</li><li class"fl">视频</li></ul><div class"clearFix" id"cont"…

Facebook 与 Google 正在主导在线身份验证市场

OpenID 公司 JanRain 的一项研究发现&#xff0c;用户在第三方网站进行身份验证时&#xff0c;最喜欢使用 Google 和 Facebook 的身份验证服务。Facebook 的验证服务 在媒体&#xff0c; 零售&#xff0c;技术等领域略微领先&#xff0c;而 JanRain 的17万份客户数据显示&#…

WIN2K/XP/2003 + APACHE + ASP + PHP + MYSQL 的简易实现

至目前总算完成了WIN2K/XP/2003 APACHE ASP PHP MYSQL这样一个建站项目&#xff0c;回过头来仔细想想也并不复杂。只是经过了反复的安装、卸载、研究、测试带找资料。真正的步骤却也没什么难的&#xff0c;但如果让你从头研究可能也是一件很头痛的事情了&#xff01;所以打…

.net 去除特殊字符

str Regex.Replace(str, "<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase); //str为需要校验的字符 str Regex.Replace(str, "[~#$%^&\*()_\{}\|<>\/\\\[\]]", "", RegexOptions.IgnoreCase…

为TypeScript项目生成API文档

为TypeScript项目生成文档 使用typedoc为TypeScript项目生成API文档。 1. 使用typedoc生成HTML文档 需要安装 typedoc。 npm i typedoc可以通过命令行参数指定配置信息&#xff0c;也可以通过加载配置文件的方式加载配置信息。 本项目中使用加载配置文件typedoc.json的方式…

DropBox免费扩容到10G了

好久没有写博客了,郑重推荐下Dropbox这款同步软件,很多人有多台电脑,比如公司和家里一些文档需要同步更新,用U盘拷贝来拷贝去,不胜其烦.自然而然就想到用同步软件,而这方面DropBox从速度来说,当然是首屈一指的. 先说明DropBox的优点: 使用简单,去官网http://www.dropbox.com下…

子网划分实例与讲解

子网划分 分为两种&#xff1a;◆ 给定网络地址&#xff0c;划分子网。◆不给定网络地址&#xff0c;根据主机数量&#xff0c;自由确定网络地址&#xff0c;进而划分子网。【实例1】给定网络地址&#xff0c;划分子网。我们单位有计算机100台左右&#xff0c;原来都是在192.16…

使用Docsify搭建Markdown文件服务器

使用docsify快速生成文档网站1. 概述2. 安装 docsify-cli 工具3. 初始化项目4. 本地预览5. 多页文档6. 定制导航栏6.1 在index.html中添加导航栏6.2 添加导航栏配置文件6.3 下拉导航栏7. 封面设置7.1 设置封面参数7.2 自定义封面背景7.3 将封面设置为首页配置项elrepomaxLevell…

DirectX903D 颜色

颜色 颜色表示 颜色用RGB三元组表示。为红色&#xff08;red&#xff09;绿色&#xff08;Green&#xff09;蓝色&#xff08;Blue&#xff09;。 RGB数据可用两种不同的结构来保存。 1 D3DCOLOR结构 与DWORD类型完全相同。共有32位。各位被 分成四个8位项&#xff08;sectio…

JAVA SHA1 加密 对应 c# SHA1 加密

java: 1 public static String SHA1(String decript) {2 try {3 MessageDigest digest MessageDigest.getInstance("SHA-1");4 digest.update(decript.getBytes("UTF-8"));5 byte[] messageDigest dige…

VLAN设置错误,导致部分用户无法上网

一、事由&#xff1a; 单位的思科3560交换机安装到位&#xff0c;加班到夜里12点&#xff0c;测试了一下&#xff0c;怎么有些用户PING不到了呢&#xff1f;难道集体关机了吗&#xff1f;太累了&#xff0c;准备明天处理。二、问题&#xff1a; 第二天早上&#xff0…

JS通过正则限制 input 输入框只能输入整数、小数(金额或者现金)

第一&#xff1a; 限制只能是整数 [js] view plaincopy <input type "text" name "number" id number οnkeyup "if(! /^d$/.test(this.value)){alert(只能整数);this.value;}" /> 如果不是整数就直接alert 第二&#xff1a; 限制是两位…

npm包开发测试与发布

NPM 包开发测试与发布NPM 包开发测试与发布引言1. 开发步骤1.1. 项目创建1.2. 工具类功能实现1.3. ts文件编译2. npm包本地测试2.1. 将npm包文件引入项目2.2. npm包功能测试3. 发布4. 注意事项我的NPM包NPM 包开发测试与发布 引言 在项目开发过程中&#xff0c;有时会遇到在多…

Jquery php 点击td变成input,修改后失去焦点发送数据

html部分 <Td><?php echo $row[bigclassid]?></Td> <td height"25" width"241" class"bigclassname"><?php echo $row[bigclassname]?></a></td> Js部分 <script> /**//* * 说明&#xff1…

美元加息怎么“剪羊毛”

我国为什么把美元储备看的如此重要? 我国需要一定的美元储备&#xff0c;不敢把美元随便花出去!1998年亚洲金融危机&#xff0c;东南亚国家为什么抵抗不过对冲基金&#xff0c;就是因为他们手里的美元储备太少&#xff0c;如果你手里美元多&#xff0c;就可以放出美元&#xf…

浅谈企业IT应用的访问方式之:乱想

近来手上的几大块事情&#xff0c;算是大头朝下了。后面可能更多是跟公司的最终用户打交道&#xff0c;一套完整的应用服务体系&#xff0c;不光只是服务器平台的搭建。更重要的是如何让用户觉得确实给他们带来了帮助。 在非洲的一段经历让我们严重认识到一点&#xff0c;其…

java中的基本用法

java中的基本用法 关键字&#xff1a;专门用途的字符串 所有java关键字都是小写英文标识符 java常量 java变量 ■ 作用域&#xff1a;起作用的区域■ 使用前必须先声明&#xff0c;在赋值。使用变量名访问这块区域java程序执行过程 java变量的分类 ■ 局部变量■ 成员变量■…