位置: IT常识 - 正文

【前端文件下载】直接下载和在浏览器显示下载进度的下载方法(前端实现文件下载功能)

编辑:rootadmin
【前端文件下载】直接下载和在浏览器显示下载进度的下载方法 文件下载方法

推荐整理分享【前端文件下载】直接下载和在浏览器显示下载进度的下载方法(前端实现文件下载功能),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:前端实现文件下载功能,前端 文件下载,前端下载文件到指定路径,前端下载后端文件,前端页面下载,前端下载文件到指定路径,前端 文件下载,前端下载后端文件,内容如对您有帮助,希望把文章链接给更多的朋友!

【前端文件下载】直接下载和在浏览器显示下载进度的下载方法(前端实现文件下载功能)

之前做下载文件遇到了点问题, 就趁此机会总结一下前端下载文件的方法:

如果是浏览器支持的类型, 那么打开的话是一个preview操作, 那么针对浏览器不支持预览的类型, 如果打开的话就会进行下载操作

a. 地址栏直接输入URL b. window.location.href = URL c. window.open(URL)

使用a标签来下载, 利用a标签的download属性, 并且可以自定义下载文件的名称 也可以直接通过js来创建一个a标签, 然后放入body里, 触发其点击事件来下载, 下载过后remove即可

<a href="/xx/xxx.jpg" download="fileName">通过XMLHttpRequest下载 缺点: 此方法是下载完毕之后才在浏览器左下角弹出对应的文件信息, 没有下载的进度, 如果文件比较大的话, 就会感觉点击了只是在loading但是并不能确定文件是否在下载, 也无法知道文件的下载进度, 体验感不好// 接收url fileName, 以及文件下载成功之后的回调downLoadFile(url, fileName, callback) { const url2 = url; // url.replace(/\\/g, "/"); const xhr = new XMLHttpRequest(); xhr.open("GET", url2, true); xhr.responseType = "blob"; //xhr.setRequestHeader('Authorization', 'Basic a2VybWl0Omtlcm1pdA=='); // 为了避免大文件影响用户体验,建议加loading xhr.onload = () => { if (xhr.status === 200) { // 获取文件blob数据并保存 // const suffix = this.getFileSuffix.call(this, url, fileName); // this.saveAs.call(this, xhr.response, fileName) this.saveAs.call(this, xhr.response, fileName) }// 下载成功之后执行回调 callback && callback(); }; xhr.send();},通过OSS实现有进度条的下载方法 优点: 点击下载之后直接在浏览器左下角弹出对应的文件信息以及下载的进度, 体验感比较好// 下载操作downloadAction(row, type = '') { // 获取上传参数 getDownloadParam().then(data => { // 拿到参数之后去创建 OSS 客户端对象 this.createOssClient(data).then(client => { const filename = row.name; const response = { 'content-disposition': `attachment; filename=${encodeURIComponent(filename)}` }; const url = client.signatureUrl(row.file_path, { response }); window.location.href = url; }); }).catch(err => { })},// 创建 OSS 客户端对象createOssClient(data) { return new Promise((resolve) => { const client = new OSS({ region: data.region, accessKeyId: data.access_key_id, accessKeySecret: data.access_key_secret, stsToken: data.security_token, bucket: data.bucket, }); resolve(client) })},

欢迎大家一起讨论学习😊~

本文链接地址:https://www.jiuchutong.com/zhishi/287188.html 转载请保留说明!

上一篇:【HTML】有趣的代码合集(附源码)(有趣的css代码)

下一篇:Pytorch文档解读|torch.nn.MultiheadAttention的使用和参数解析(pytorch说明文档)

  • 远离十个误区 让邮件营销爆发出洪荒之力(远离sb)

    远离十个误区 让邮件营销爆发出洪荒之力(远离sb)

  • 苹果闹铃只振动不响铃怎么办(苹果闹铃振动怎么设置强度)

    苹果闹铃只振动不响铃怎么办(苹果闹铃振动怎么设置强度)

  • 微信朋友圈私密权限别人能看吗(微信朋友圈私密评论怎样设置)

    微信朋友圈私密权限别人能看吗(微信朋友圈私密评论怎样设置)

  • 钉钉直播回放为什么有的颜色不一样(钉钉直播回放为什么打不开)

    钉钉直播回放为什么有的颜色不一样(钉钉直播回放为什么打不开)

  • 钉钉界面怎么是黑色(钉钉界面显示不全(顶部和左侧菜单栏无法显示)问题解决)

    钉钉界面怎么是黑色(钉钉界面显示不全(顶部和左侧菜单栏无法显示)问题解决)

  • 企业微信用户是什么(企业微信用户是不是不能聊天)

    企业微信用户是什么(企业微信用户是不是不能聊天)

  • 手机屏幕脱胶要换屏吗(手机屏幕脱胶要多久好)

    手机屏幕脱胶要换屏吗(手机屏幕脱胶要多久好)

  • 苹果11还原所有设置会有什么影响(苹果11还原所有设置和抹掉所有内容和设置)

    苹果11还原所有设置会有什么影响(苹果11还原所有设置和抹掉所有内容和设置)

  • 微信昵称可以加好友吗(微信昵称可以加进去的符号)

    微信昵称可以加好友吗(微信昵称可以加进去的符号)

  • 钉钉直播可以关声音吗(钉钉直播可以关闭摄像头吗)

    钉钉直播可以关声音吗(钉钉直播可以关闭摄像头吗)

  • word域在哪里设置(word中域怎么设置)

    word域在哪里设置(word中域怎么设置)

  • 微机系统最基本的输出设备是(微机系统最基本的输出设备)

    微机系统最基本的输出设备是(微机系统最基本的输出设备)

  • 朋友圈一定要发图片吗(朋友圈一定要发工作吗)

    朋友圈一定要发图片吗(朋友圈一定要发工作吗)

  • 苹果手表蜂窝版哪些地区可以用(苹果手表蜂窝版支持哪些城市)

    苹果手表蜂窝版哪些地区可以用(苹果手表蜂窝版支持哪些城市)

  • switch强制重启(switch强制重启后游戏不见了)

    switch强制重启(switch强制重启后游戏不见了)

  • 苹果11大小多少厘米(苹果11手机的大小是多少厘米)

    苹果11大小多少厘米(苹果11手机的大小是多少厘米)

  • ps色相饱和度快捷键(ps里色相饱和度快捷键)

    ps色相饱和度快捷键(ps里色相饱和度快捷键)

  • 盲插数据线接口叫什么(盲插数据线是什么)

    盲插数据线接口叫什么(盲插数据线是什么)

  • p30灭屏显示费电吗(华为p30关屏后怎么会显示时间和电量)

    p30灭屏显示费电吗(华为p30关屏后怎么会显示时间和电量)

  • iphonex电池容量多大(iphonexs电池容量)

    iphonex电池容量多大(iphonexs电池容量)

  • 58同城怎么关自动发送的消息(58同城怎么关自动回复消息)

    58同城怎么关自动发送的消息(58同城怎么关自动回复消息)

  • 抖音的出行历史怎么弄(抖音的出行历史怎么删除)

    抖音的出行历史怎么弄(抖音的出行历史怎么删除)

  • 爱奇艺怎么切换经典版(爱奇艺怎么切换会员)

    爱奇艺怎么切换经典版(爱奇艺怎么切换会员)

  • iponex怎么设置微信锁(苹果手机怎么在微信设置)

    iponex怎么设置微信锁(苹果手机怎么在微信设置)

  • wps中流程图如何制作(wps流程图如何去掉网格)

    wps中流程图如何制作(wps流程图如何去掉网格)

  • boss直聘如何注销账号(boss直聘网账号怎么注销)

    boss直聘如何注销账号(boss直聘网账号怎么注销)

  • lxdboxcp.exe是什么进程 有什么用 lxdboxcp进程查询(xcsp_eclib.dll)

    lxdboxcp.exe是什么进程 有什么用 lxdboxcp进程查询(xcsp_eclib.dll)

  • 销售原材料给供应商
  • 由旅行社开具的电子普票代订机票能抵扣税吗?
  • 公司给个人的补偿金需要交税吗
  • 购进库存商品到销售全部分录
  • 三栏式明细分类账的账页格式适用于
  • 股权投资损失账务处理
  • 研发费用加计扣除行业
  • 并购投资的方式有哪些
  • 招待费进项税额转出会计分录
  • 财务费用在贷方与做借方红字有区别吗
  • 其他贷款服务的内容包括
  • 质量问题扣款账务处理
  • 房贷可以抵个人所得税吗
  • 货物运输企业纳税多少
  • 发票为什么会查不到信息
  • 税控盘不存在怎么回事
  • 在途物资期末借方
  • 预缴企业所得税是含税还是不含税
  • 公司帮别人代缴社保
  • 如何查看本月还款金额
  • 发票丢了还可以重开吗
  • 中国的农业成本为什么高
  • 季度利润
  • 银行承兑汇票接收
  • 申请专利的顺序
  • 固定资产清理会发生什么费用
  • system idle process是什么进程(CPU的空闲率)
  • 代开的发票没有人名行不行?
  • 银行拒付汇票金额的救济方法
  • 本地连接受限制无法连接
  • 购买低值易耗品现金流量计入
  • 发行可转换优先股记入权益工具吗
  • 苏格兰高地什么意思
  • php ffi 性能
  • stable Diffusion安装教程
  • uniapp简介
  • 区块链网站模板
  • phpcms怎么用
  • 织梦作坊的微博
  • 融资租赁首付租金会计账务处理
  • 计税工资什么意思2019
  • 委外加工怎么盘点
  • 小规模纳税人免税政策2023年
  • 发票已开款未到的会计分录?
  • 小规模减免的增值税
  • 房租收入税费
  • 注销的企业
  • 未开票收入转为开票收入
  • 售楼部大楼
  • 公司基本户可以变更吗
  • 资产负债表月报的期初余额填什么
  • 公司注销固定资产清理怎么做账务处理
  • 个体工商户建行贷款条件
  • mysql could not be resolved: Name or service not known
  • 通过T-SQL语句实现数据库备份与还原的代码
  • Win10系统任务栏一直转圈
  • win10快速启动什么意思
  • 出现早搏就一辈子无法治愈吗
  • mac菜单栏不见了
  • linux必不可少的分区
  • win7的收藏夹在哪里
  • pascl32.exe - pascl32是什么进程 有什么用
  • windows7使用
  • win10 ug
  • 画布canvas的基本步骤
  • html中的td
  • JAVA的OPENGL,JOGL入门实例----碰撞移动的正方体 (配置+源代码)
  • dos命令 获取文件名
  • js实现功能
  • js中的
  • 数据字典实例详解
  • 安卓开源项目叫什么
  • python djang
  • 所得税季度报表收入成本怎么填
  • 辽宁省国家税务总局
  • 缴纳社保问题证明怎么查
  • 全国税务系统全面从严治党工作会议2023年
  • 财务负责人变更了之后还有影响吗
  • 销货清单表格的制作方法
  • 小规模纳税人开专票税率是1%还是3%
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设