位置: 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说明文档)

  • 可口和宝洁居然说数字营销效果差?!(可口旗下的品牌)

    可口和宝洁居然说数字营销效果差?!(可口旗下的品牌)

  • brushset笔刷怎么导入ps(brushset笔刷怎么导入procreate)

    brushset笔刷怎么导入ps(brushset笔刷怎么导入procreate)

  • 苹果手表esim怎么开通(苹果手表esim怎么激活)

    苹果手表esim怎么开通(苹果手表esim怎么激活)

  • 微信发出去的图片超过两分钟怎么撤回(微信发出去的图片怎么撤回已经过了时间)

    微信发出去的图片超过两分钟怎么撤回(微信发出去的图片怎么撤回已经过了时间)

  • ios14怎么分屏(ios14怎么分屏教程)

    ios14怎么分屏(ios14怎么分屏教程)

  • oppo手机怎么隐藏下面的返回键(oppo手机怎么隐藏游戏?)

    oppo手机怎么隐藏下面的返回键(oppo手机怎么隐藏游戏?)

  • 腾讯会议共享屏幕黑屏(腾讯会议共享屏幕时怎么露脸)

    腾讯会议共享屏幕黑屏(腾讯会议共享屏幕时怎么露脸)

  • dc调光会加速烧屏吗(dc调光会耗电吗)

    dc调光会加速烧屏吗(dc调光会耗电吗)

  • watch同步要多久(applewatch同步太慢)

    watch同步要多久(applewatch同步太慢)

  • 手机qq临时会话恢复(手机qq临时会话框删掉了怎么恢复)

    手机qq临时会话恢复(手机qq临时会话框删掉了怎么恢复)

  • ipad的粘贴复制不灵(ipad复制黏贴快捷键)

    ipad的粘贴复制不灵(ipad复制黏贴快捷键)

  • 钉钉小屏播放算时长吗(钉钉小屏播放算时长吗苹果手机)

    钉钉小屏播放算时长吗(钉钉小屏播放算时长吗苹果手机)

  • 一个手机绑定几个qq号(一个手机绑定几个抖音号)

    一个手机绑定几个qq号(一个手机绑定几个抖音号)

  • 华为哪些手机搭载麒麟990(华为哪些手机搭载麒麟9905G)

    华为哪些手机搭载麒麟990(华为哪些手机搭载麒麟9905G)

  • 苹果id密码明明正确怎么老是显示错误(苹果id密码明明对的但是还是更新不了)

    苹果id密码明明正确怎么老是显示错误(苹果id密码明明对的但是还是更新不了)

  • iphone11应用加密怎么设置(苹果11应用加密码)

    iphone11应用加密怎么设置(苹果11应用加密码)

  • 抖音怎么取消生日显示(抖音怎么取消生日标签)

    抖音怎么取消生日显示(抖音怎么取消生日标签)

  • 计算机网络由什么组成部分(计算机网络由什么子网)

    计算机网络由什么组成部分(计算机网络由什么子网)

  • 无id锁机什么意思(什么叫无id锁)

    无id锁机什么意思(什么叫无id锁)

  • ipv4地址的分类有哪些(ipv4地址种类)

    ipv4地址的分类有哪些(ipv4地址种类)

  • 支付宝没有收款权限怎么办(支付宝没有收款权限什么意思)

    支付宝没有收款权限怎么办(支付宝没有收款权限什么意思)

  • 视频长得怎么发给朋友(如何发视频过长的视频)

    视频长得怎么发给朋友(如何发视频过长的视频)

  • 苹果11更新后开不了机(苹果11更新开不了机)

    苹果11更新后开不了机(苹果11更新开不了机)

  • 苹果11可以微信分身吗(苹果11可以微信视频小界面吗)

    苹果11可以微信分身吗(苹果11可以微信视频小界面吗)

  • 抖音请求关注是什么意思(抖音请求关注是什么样子的)

    抖音请求关注是什么意思(抖音请求关注是什么样子的)

  • vivoy97闪充在哪里找(vivoy97用闪充充会怎么样)

    vivoy97闪充在哪里找(vivoy97用闪充充会怎么样)

  • pr怎么删除画面保留音频(pr怎么删除画面一部分)

    pr怎么删除画面保留音频(pr怎么删除画面一部分)

  • 劳务公司为一般纳税人的税率
  • 服务业按什么结算收入
  • 会计中计提是什么意思
  • 处置固定资产简易征收
  • 房屋租赁费如何计提
  • 货到发票没到
  • 公司接受投资会计科目
  • 餐补和车补可以税前扣除吗?
  • 现金余额大违反了什么规定
  • 工程项目劳务分包合同范本
  • 少数股东权益如何保障
  • 购买实验器材会计分录
  • 购进材料无发票会计分录
  • 买材料的仓储费会计分录
  • 建安企业工资占比标准
  • 代扣税金是什么意思
  • 独生子女保健费发到孩子多大年纪
  • 什么是差额征税,什么情况下适用差额征税
  • 外籍人员个人所得税政策
  • 食堂费用计入应付职工薪酬吗
  • 公司发生的费用需要交税吗
  • 转账支票用途可以写劳务费吗
  • 餐饮充值赠送
  • 给外国教授发邮件最后一句
  • 工程已验收,质量问题怎么解决
  • win10内存完整性不兼容的驱动程序
  • linux批量操作工具
  • win11windows安全中心打不开
  • win10专业版激活密钥永久2023
  • 交割单会出错吗
  • linux killall
  • 报考中级会计师证的条件
  • tplink路由器怎么连接无线网络
  • 计提本月应交未交增值税
  • 土地使用税的税目写什么
  • 代理业务资产的意思
  • php零基础教程
  • wordpress主题0skr
  • 蚁群算法是什么
  • 鲜花售卖系统
  • bert的原理
  • 人工智能导论论文2000字
  • 一般纳税人怎么申请纳税
  • mysql的备份方式
  • sql server 2008r
  • 无法支付的应付账款转作营业外收入
  • 投资性房地产在建期间需要摊销吗
  • 电子税务局怎么查询开票记录
  • sql server遇到的主要问题及解决方法
  • sqlserver2008数据库可疑
  • 固定资产计入管理费用就不用折旧了吗
  • 代开发票要带什么资料?
  • 冲暂估的账务处理
  • 虚购发票进项税怎么处理
  • 企业暂估入账的税务风险
  • 没有对公业务的银行
  • 工资油补也要交税吗
  • 私营公司的钱怎么拿出来
  • mysql查看查询耗时
  • mysqldump -w
  • netdrive mac
  • centos添加自启动
  • 苹果电脑重新安装macos失败
  • mac浏览器显示不全
  • 怎样设置win10
  • windows7看视频卡顿如何解决
  • cocos-2dx
  • jquery关闭当前页面
  • unity多人语音
  • startactivity()
  • linux lvm配置
  • python的删除命令
  • shell脚本遍历
  • 用yum安装samba
  • js基础教程
  • 安卓系统手机图片文件夹在哪里
  • 银行代扣流程
  • 大同地税局地址
  • 如何查询公司的营业执照
  • 独立的法人企业
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设